JP2006268777A - ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラム - Google Patents
ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラム Download PDFInfo
- Publication number
- JP2006268777A JP2006268777A JP2005089906A JP2005089906A JP2006268777A JP 2006268777 A JP2006268777 A JP 2006268777A JP 2005089906 A JP2005089906 A JP 2005089906A JP 2005089906 A JP2005089906 A JP 2005089906A JP 2006268777 A JP2006268777 A JP 2006268777A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- history information
- history
- analysis
- management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】 履歴管理システムの内部で管理される履歴情報と修正されたソースコード内のコメントに記載された履歴情報を整合させ、専用の表示ツールを使用することなく、修正履歴とソースコードとを表示する。
【解決手段】 ソースコードの履歴を管理するソースコード履歴管理装置において、新ソースコード上に当該新ソースコードの履歴をマージして出力する出力部43と、この出力部43の出力に基づいて、新ソースコードの履歴を解析するとともに当該ソースコードと旧ソースコードとの差分を獲得する解析部2とを備え、出力処理手段4から、新又は旧ソースコード上に、旧又は新旧ソースコードの履歴をマージして出力する。履歴は、ソースコード内に記述される所定様式のコメント及び所定様式のマクロ命令である。
【選択図】 図1
【解決手段】 ソースコードの履歴を管理するソースコード履歴管理装置において、新ソースコード上に当該新ソースコードの履歴をマージして出力する出力部43と、この出力部43の出力に基づいて、新ソースコードの履歴を解析するとともに当該ソースコードと旧ソースコードとの差分を獲得する解析部2とを備え、出力処理手段4から、新又は旧ソースコード上に、旧又は新旧ソースコードの履歴をマージして出力する。履歴は、ソースコード内に記述される所定様式のコメント及び所定様式のマクロ命令である。
【選択図】 図1
Description
本発明は、ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラムの係り、特に保存されている旧ソースコード上のコメントとマクロ命令を構文解析して履歴情報となるコメントとマクロ命令を獲得し、これらをソースコードと共に新ソースコードとして出力し又は登録し表示し得るソースコード管理システム、ソースコード管理方法、及びソースコード管理プログラムに関する。
ソースコード(ソースプログラム)は高級プログラム言語(人間の理解できるプログラム言語)で記述されたプログラムであり、オブジェクトコード(機械語)に翻訳してハードウエアとしてのコンピュータにより実行されるものである。このようなソースコードは、作成途上におけるレコード(行)の変更,追加,削除,或いは完成後の仕様変更があったときは、多くは履歴変更として管理されている。
例えば、特許文献1(プログラム修正情報管理方法)では、ソースコードの修正コメント行を修正前のソースコードに書き加えることなく、修正情報を管理するようになっている。そのため、バージョン毎に、追加,変更,削除された各行を全て保存し、当該変更した行に追加(A),変更(U),削除(D)なる変更区分を付与し、履歴一覧として表示する。
又、特許文献2(プログラムソースの修正履歴管理方法・・)では、バージョンの異なるソースコードをバージョン毎に一つのディレクトリへ格納し、比較したいソースコードのディレクトリ名のチェックボックスにチェックを入れる。具体的には、比較対象であるソースコード差分に相当する新バージョン側のソースコードにかかる行番号,関数名,修正項目番号等のコメント文が修正形式を示す記号と共に修正履歴情報として修正履歴管理データベースに登録する。この場合、修正形式を示す記号には「追加」「挿入」「削除」等がある。そして、修正履歴情報は修正履歴解析画面に表示されるようになっている。
このように、従来の履歴管理の多くはソースコードのバージョン管理のために用いられ、ソースコードのそれぞれのバージョンに対して変更差分を保存し管理するようになっている。又、入力されるソースコードと履歴管理システムが管理するソースコードとを行単位で差分抽出し、履歴管理システムの内部形式で表して管理する。出力時には指定されたバージョンのソースコードを差分の記録された内部形式から復元し、ソースコードとして出力させるようになっている。又、ソースコードの差分の履歴を確認する際には、履歴管理システムの内部形式用のビューアを利用し、変更履歴を一括して視認させるようになっている。
しかしながら、上述した従来例にあっては、履歴情報が履歴管理システム上でのみ利用されるようになっているため、ソースコードの取り出し時に履歴情報が失われるという不都合があった。
又、従来より、ソースコードの履歴管理にあって、コメントやマクロは記述的な制約がないことから多くは個人に依存しており、これがためソースコード上に記載されたコメントやマクロ命令に記載された履歴情報に一貫性がなく、管理システム上で履歴管理中の履歴情報と不整合が生じ、履歴表示ツール等の支援ツールなどによる加工も困難なものとなっていた。即ち、従来のソースコードの履歴管理システムでは、ソースコードの履歴情報を履歴管理システム内部で管理しているので取り出されたソースコードからは履歴情報を読み取ることが困難であった。
そこで、本発明では、かかる従来例の有する不都合を改善し、特に履歴管理中の履歴情報とソースコード上の履歴情報との不整合を無くすると共に履歴情報とソースコードとを円滑に取り出し得るようにしたソースコード管理システム,ソースコード管理方法、及びその管理プログラムを提供することを、その目的とする。
本発明では、入力手段から入力されるソースコードの履歴を解析し現在管理されているソースコードとの差分を抽出する解析手段と、この解析手段で抽出された差分と前記入力手段から入力される履歴情報およびソースコードとを合わせて保存する保存管理手段とを備えている。そして、前述した保存管理手段で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上に所定の履歴情報をマージして出力する出力処理手段を、前述した保存管理手段に併設する、という構成を採っている(請求項1)。ここで、出力処理手段としては、保存管理手段で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上のコメント・マクロに対応する履歴情報を埋め込んでコンパイル可能な形式で出力する、としてもよい(請求項2)。
このため、本実施形態では例えばコメントとマクロに履歴情報を出力することでコンパイル時に履歴となる部分がコンパイルされないことから、管理システムから取り出した履歴情報付ソースコードを何らの処理を施すことなくコンパイル可能とした。又履歴情報は規定のデータ構造によって管理されるので、複雑な解析を行うことなく履歴情報とソースコードとの分離ができることから、ソースコード表示のための支援ツールによる加工(強調表示等の)が容易になる等、ソースコード上での履歴情報の視認性を向上させることができるという利点がある。
又、本発明では、前述した解析手段を、入力されるソースコードを受けて字句解析しトークン列を作成する字句解析部と、この字句解析部からのトークン列を受けて履歴情報の内の少なくとも差分を表すマクロのデータ構造を解析し履歴管理用のマクロデータを作成する履歴管理用マクロ解析部と、前述した字句解析部からのトークン列を受けて履歴情報の内のコメントトークンを表す文字列をコメント解析用に字句解析し且つ構文解析して履歴情報用のコメントデータを作成する履歴管理用コメント解析部とを備えた構成とする。更にこの解析手段には、履歴管理用コメント解析部および前述した履歴管理用マクロ解析部での解析結果に基づいて機能し当該ソースコードと前述した保存管理手段に保存されているソースコードとの差分を抽出し履歴管理用のマクロデータ及びコメントでータと合わせて保存管理手段に更新登録するソースコード差分獲得部を装備するようにした(請求項3)。
ここで、前述した解析手段のソースコード差分獲得部解析手段を、前述した履歴管理用コメント解析部および履歴管理用マクロ解析部での解析結果に基づいて機能し当該履歴情報をソースコードから分離する履歴情報分離機能と、この履歴情報が分離されたソースコードと前述した保存管理手段に保存されているソースコードとの差分を抽出する差分抽出機能と、この抽出された差分を前述した履歴管理用のマクロデータ及びコメントでータと合わせて差分情報として前述した保存管理手段に更新登録する差分情報登録制御機能とを備えた構成としてもよい(請求項4)。
このようにすると、例えば履歴情報が一定の書式に従ったデータ構造でコメントやマクロに埋め込まれるため、複雑な解析を行なうことなく履歴情報とソースコードとの分離ができるため、ソースコードの表示ツールとして強調表示などの加工を容易に成し得るという利点がある。又、解析手段に有する構文解析手段の機能によってソースコード上からのコメント・マクロの解析が可能となり、これがため、ソースコードと当該管理システムで履歴情報を相互に変換できるという利点がある。更に差分計算に際しては、差分抽出機能が有効に作動して履歴情報が分離されたソースコードと前述した保存管理手段に保存されているソースコードとの差分を抽出するようにしたので、履歴情報を的確に分離捕捉することができるという利点がある。
又、本発明では、前述した出力処理手段を、前述した入力部からの指示に基づいて作動しソースコードが履歴情報を含むか否か判定すると共にその判定結果に基づいて出力形式を特定する履歴付有無出力判定部と、この履歴付有無出力判定部の指示に従って作動し履歴管理用のデータ構造とソースコードとを合成し前記履歴付有無出力判定部から指示された出力形式に従ってコンパイル可能な形式で、コメントおよびマクロによる履歴管理用データを埋め込んだ形でソースコードを出力する履歴・ソースコードマージ部とを備えた構成とした(請求項5)。
これにより、上記ソース管理システムは、入力手段から指定されたバージョンのソースコードを出力することができる。この場合の出力は、履歴情報をソースコード上のコメント・マクロに含めた形態で出力する場合と、履歴情報を含めないソースコードで出力する場合とがあり、いずれの場合も極く容易に対応し得るという利点がある。
更に、本発明では、ソースコード管理方法として、更新登録用として入力されたソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う第1のステップと、この字句解析に基づいて当該履歴管理用のマクロ解析を行う第2のステップと、この第2のステップに並行して作動し前記第1ステップでの字句解析に基づいてコメント解析用に字句解析および構文解析を行う第3のステップと、この第3のステップでコメント内部の形式が履歴情報データに沿ったものである場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する第4のステップと、前記第1乃至第4の各ステップの結果に基づいて作動し履歴情報とソースコードとを分離する第5のステップと、この第5のステップで分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する第6のステップと、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する第7のステップと、この抽出した差分情報をソースコードの履歴をして更新登録する第8のステップとを備えた構成を採用した(請求項6)。このようにすると、前述した請求項1乃至2記載のソースコード管理システムと同等の効果を得ることができ、ソースコード管理システムをより有効に実施することができる。
又、本発明では、ソースコード管理方法として、前述した入力されたソースコードが履歴情報を備えていない場合に機能し、上記ソースコードを上述した第1ステップ乃至第5ステップを越えて第6ステップの分離されたソースコードと同等に扱うように構成してもよい(請求項7)。
更に、本発明では、出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する第1の工程と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す第2の工程と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う第3の工程と、この第3の工程で処理されたソースコードを出力する第4の工程とを備えた構成とした(請求項8)。
このようにすると、前述したソースコードを履歴情報と共に円滑に且つ確実に取り出すことができるという利点がある。
又、本発明にかかるソースコード管理プログラムでは、ソースコードの履歴をソースコードと共に出力可能に更新するために、コンピュータを、更新登録用として入力されたソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、ソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う字句解析機能と、この字句解析の結果に基づいて当該履歴管理用のマクロ解析を行うマクロ解析機能と、前述したソースコードの字句解析機能に基づいてコメント解析用に字句解析および構文解析を行う構文解析機能と、この構文解析によってコメント内部の形式が履歴情報データに沿ったものであるとなった場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する履歴情報用データ作成機能と、これらの各機能の実行結果に基づいて作動し履歴情報とソースコードとを分離する履歴情報分離機能と、この分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する差分抽出機能と、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する履歴情報付加機能と、この抽出した差分情報をソースコードの履歴として更新登録する履歴更新登録機能とを実現させるようにした(請求項9)。
このため、これによると、前述した請求項4記載のソースコード管理システムと同等の効果を奏する管理プログラムを得ることができる。
更に、本発明にかかるソースコード管理プログラムでは、ソースコードの履歴をソースコードと共に出力させるためにコンピュータを、出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す保存情報取り出し機能と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う履歴情報マージ機能と、この履歴情報がマージされたソースコードを出力するソースコード出力機能とを実現させるようにした(請求項10)。
このため、これによると、前述した請求項5記載のソースコード管理システムと同等の効果を奏するソースコード管理プログラムを得ることができる。
以上のように、本発明によると、ソースコードと共に履歴情報を出力することが可能となり、かつ履歴情報はソースコード上のコメント・マクロの形態で出力できるので、コンパイル可能なソースコードを履歴情報を失うことなく出力できるという従来にない優れた効果を奏する。同時に、履歴情報は規定のデータ構造によって管理されるので、複雑な解析を行うことなく履歴情報とソースコードとの分離ができ、これがためソースコード表示のための支援ツールによる加工(強調表示等の)が容易になる等、ソースコード上での履歴情報の視認性を向上させることができるという従来にない優れた効果を奏する。
以下、本発明の実施形態を図面に従って説明する。
本実施形態では、ソースコード上での変更履歴管理を支援するソースコード管理システムについての一例を示す。この実施形態におけるソースコード管理システムは、入力されたソースコードのコメントとマクロを構文解析しその解析結果から履歴情報を獲得可能な構文解析部を備えた解析手段と、その解析結果を不足無く保存可能な保存管理手段と、保存された内容を取り出す際に履歴情報をコメントとマクロを組み合わせてソースコード上に埋め込み可能な出力処理手段を備え、ソースコードのコメントとマクロから履歴情報を相互に変換できるソースコード管理システムとした点に特徴を備えている。以下、これを詳細に説明する。
〔全体的構成〕
図1において、ソースコード管理システムは、入力手段1と、この入力手段1から入力されるソースコードの履歴を解析し現在管理されているソースコードとの差分を抽出する解析手段2と、この解析手段2で抽出された差分と入力手段1から入力される履歴情報およびソースコードとを合わせて保存する保存管理手段3とを備えている。更に、前述した保存管理手段3で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上に所定の履歴情報をマージして出力する出力処理手段4を備えている。ここで、入力手段1は、管理対象と成るソースコード等を入力する入力部11と、この入力部11で入力されるソースコードの履歴情報を分析する履歴付有無入力判定部12とを備えている。又、出力処理手段4は、保存管理手段3で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上のコメント・マクロに対応する履歴情報を埋め込んでコンパイル可能な形式で出力する機能を備えている。
図1において、ソースコード管理システムは、入力手段1と、この入力手段1から入力されるソースコードの履歴を解析し現在管理されているソースコードとの差分を抽出する解析手段2と、この解析手段2で抽出された差分と入力手段1から入力される履歴情報およびソースコードとを合わせて保存する保存管理手段3とを備えている。更に、前述した保存管理手段3で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上に所定の履歴情報をマージして出力する出力処理手段4を備えている。ここで、入力手段1は、管理対象と成るソースコード等を入力する入力部11と、この入力部11で入力されるソースコードの履歴情報を分析する履歴付有無入力判定部12とを備えている。又、出力処理手段4は、保存管理手段3で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上のコメント・マクロに対応する履歴情報を埋め込んでコンパイル可能な形式で出力する機能を備えている。
このため、本実施形態では例えばコメントとマクロに履歴情報を出力することでコンパイル時に履歴となる部分がコンパイルされないことから、管理システムから取り出した履歴情報付ソースコードを何らの処理を施すことなくコンパイル可能とした。
前述した入力手段1にあって、入力部11からは、管理対象たるソースコードおよびその履歴情報が、又出力形式指定が、それぞれ入力され、更に、当該システムから外部出力するための出力形式指定も同時に入力されるようになっている。この場合、ソースコード,履歴情報および入力形式指定は、ソースコードの修正を当該管理システムに登録する際に使用される。又出力形式指定は当該管理システムから現在保存中のソースコードを取り出す場合に使用される。又、前述した履歴付有無入力判定部12は、入力部11からのソースコードが履歴情報を含むソースコードか否かを判定する。この判定は入力部11からの入力形式指定をもって成される。
前述した解析手段2は、入力されるソースコードを受けて字句解析しトークン列を作成する字句解析部21と、この字句解析部21からのトークン列を受けて履歴情報の内の少なくとも差分を表すマクロのデータ構造を解析し履歴管理用のマクロデータを作成する履歴管理用マクロ解析部22と、前述した字句解析部21からのトークン列を受けて履歴情報の内のコメントトークンを表す文字列をコメント解析用に字句解析し且つ構文解析して履歴情報用のコメントデータを作成する履歴管理用コメント解析部23とを備えている。さらに、この解析手段には、履歴管理用コメント解析部および前述した履歴管理用マクロ解析部での解析結果に基づいて機能し当該ソースコードと前述した保存管理手段3に保存されているソースコードとの差分を抽出すると共に履歴管理用のマクロデータ及びコメントでータと合わせて保存管理手段3に更新登録するソースコード差分獲得部24が装備されている。
ここで、前述した解析手段のソースコード差分獲得部解析部24は、前述した履歴管理用コメント解析部23および履歴管理用マクロ解析部22での解析結果に基づいて機能し当該履歴情報をソースコードから分離する履歴情報分離機能と、この履歴情報が分離されたソースコードと前述した保存管理手段3に保存されているソースコードとの差分を抽出する差分抽出機能と、この抽出された差分を前述した履歴管理用のマクロデータ及びコメントでータと合わせて差分情報として前述した保存管理手段3に更新登録する差分情報登録制御機能とを備えた構成となっている。又、保存管理手段3は、履歴情報保存部31とソースコード保存部31とを備えた構成となっている。
解析手段2の前述した字句解析部21では、入力部11からのソースコードを受け、字句解析してトークン列を作成する。トークンの例としては、識別子やキーワード、それに、空白、コメント等をも含む。又、履歴管理用マクロ解析部22では、字句解析部21からのトークン列を受けて作動し、履歴情報、特に差分を表すマクロのデータ構造を解析する。そして、マクロの構造がソースコードの履歴情報データ構造で記載されている場合、これを履歴管理用マクロデータとして作成する。
更に、履歴管理用コメント解析部23では、字句解析部21からのトークン列を受け、コメントトークンに注目する。注目したコメントトークンそれぞれについて、履歴情報データ構造用のコメントであるか否かを認識するために、コメントトークンを表す文字列をコメント解析用に字句解析し、更に構文解析する。そして、当該コメントが履歴情報用コメントのデータ構造であった場合は、これを履歴管理用コメントデータとして作成する。続いて、本データと前述した履歴管理マクロ解析部22での履歴情報用マクロのデータとをつき合わせ、整合が取れているかを確認する。
又、前述した解析手段2のソースコード差分獲得部24では、履歴管理用マクロ解析部22、履歴管理用コメント解析部23より、履歴情報用の部分であるトークン列を元のトークン列から削除する。得られたトークン列と、保存管理部3のソースコードとの差分を獲得し、差分が存在している時にはこれを履歴情報用マクロ及び履歴情報用コメントのデータ構造にあわせ、保存管理部3のデータを更新する。
前述した出力処理手段4は、具体的には履歴付有無出力判定部41と履歴・ソースコードマージ部42と出力部43とを備えた構成となっている。この内、履歴付有無出力判定部41では、入力装置11から指示された出力形式に従い、出力形式を履歴・ソースコードマージ部42に指示する。又、履歴・ソースコードマージ部42では、履歴管理用のデータ構造とソースコードとを合成し、履歴付有無出力判定部41より指示された形式に従ってコンパイル可能な形式でコメント,マクロによる履歴管理用データを埋め込んだ形でソースコードを出力する。ここで、符号5は出力されたソースコード等を表示する表示装置を示し、符号6は出力されたソースコード等の情報を登録する登録装置を示す。
〔解析手段2と出力処理手段4との連係動作〕
次に、本実施形態における主要部である解析手段2と出力処理手段4との連係動作について説明する。
次に、本実施形態における主要部である解析手段2と出力処理手段4との連係動作について説明する。
まず、解析手段2の字句解析部21では、入力部11からのソースコードと、履歴付有無の入力判定部12から入力条件を取得し、履歴管理用マクロ解析および履歴管理用コメント解析用に字句解析してトークン列へ変換する。履歴管理用マクロ解析部22では得られたトークン列を入力として、マクロの構造を解析し、履歴管理用のマクロ構造データを作成する。履歴管理用コメント解析部23では、得られたトークン列からコメントトークンが発見された時、コメントトークンを入力文字列として、履歴管理用のコメントであるか否かを判定する。
履歴管理用のコメントの場合には文字列内部をコメント解析用に字句解析し、履歴情報コメント認識するために構文解析し、履歴管理用のコメント構造データを作成する。履歴管理用のコメント構造データは履歴マクロ名と、その他履歴管理用の情報(日付・修正者・修正番号等)を含めることが可能であり、且つ省略可能なデータ構造を持たせる。ソースコード差分管理部では、入力ソースコードと現在ソースコード管理システム上に登録されているソースコードとの差分を抽出する。そして、この抽出結果と、入力部11からの履歴情報(修正者名・修正番号)等を合わせて履歴情報として、ソースコードと合わせて保存管理部3へ保存する。
出力処理部4では、保存管理部3から取り出したソースコードとこれに対応する履歴情報のデータを読み出し、これをソースコード上のコメント・マクロに履歴情報を埋め込み、コンパイル可能な形式でソースコードを出力する。よって、ソースコード上に履歴情報を埋め込み可能であり、且つ、ソースコードはコンパイル可能な形式で出力できる。履歴情報は規定のデータ構造によって管理されるため、ソースコード表示のための支援ツールによる加工が容易になるなど、ソースコード上での履歴情報の視認性を向上できる。
〔全体的な動作:第1段階(変更履歴保存動作)〕
次に、上記第1実施例におけるソースコード管理システムの動作を二段階に分けて説明する。第1段階はソースコードを変更して保存処理部3に格納するまでの動作(変更履歴の管理)であり、第2段階は変更したソースコードを出力する動作である。
次に、上記第1実施例におけるソースコード管理システムの動作を二段階に分けて説明する。第1段階はソースコードを変更して保存処理部3に格納するまでの動作(変更履歴の管理)であり、第2段階は変更したソースコードを出力する動作である。
上記第1のユースケースでは、最初に、入力部1からソースコードを受け取る。入力されたソースコードは履歴情報付データ構造を持ったソースコードである場合とそうでない場合がある( 図2〜図4)。入力されたソースコードが履歴情報付データ構造を持ったソースコードであるか否かが入力部11より受け取って最初に判断される。
入力されたソースコードが履歴情報付ではないと判断された場合、当該ソースコードの処理は図2のステップS7に飛ぶ。そして、ソースコード差分獲得部24でソースコード管理システムからソースコード取り出して、入力されたソースコードとの差分を抽出する(図2のステップS7〜S8)。抽出した差分に対して、入力部11より付加履歴情報(修正者名、修正番号など)を受け取り、コードの差分変更履歴と対応付けてソースコード管理システムのデータを更新する(図2のS9)。
一方、入力されたソースコードが履歴情報付データ構造を持ったソースコードの時、字句解析を行う( 図2のS1) 。字句解析から受け取ったトークン列を元に、履歴情報用マクロ解析部23で解析を行う( 図2のS4) 。この解析は、入力された履歴情報付ソースコードが有効な形式に沿っているかを判定する目的と、ソースコード管理システム上での履歴情報の更新に利用するために行う。さらに、トークン列からコメントトークンに着目し、履歴管理用コメント解析部22に履歴管理用コメントトークンを入力する。この場合、履歴管理用のコメントであるかそうでないかは、コメント内部の形式が履歴管理用データ構造に沿っているか否かにより判断する。
履歴管理用コメント解析部22は、受け取ったコメントトークンを文字列としてコメント解析用に字句解析(図2のS2)・構文解析(図2のS3)し、履歴情報データ構造に沿っているかを確認し、沿っているときはそのデータ構造を獲得できる。沿っていないときは、そのコメントを通常のコメントとして認識しスキップさせる。得られた履歴情報用マクロデータと、履歴情報用コメントデータをあわせ、対応を判定し履歴情報データ構造を作成する(図2のS5)。履歴は、#if マクロのデファイン名と、コメント中のデータとして対応する履歴マクロのデファイン名を対応させる。
ソースコード差分獲得部24では、前述した解析の結果を利用し、ソースコードの差分計算のため履歴情報をソースコードと分離する。履歴情報を記載したコメント、および、履歴情報用のマクロ構造を取り除く(図2のS6)。さらに差分の計算となるベースソースコード取得のため、保存部3のソースコード保存部32から、現バージョンのソースコードを取得する(図2のS7)。獲得したソースコードと、入力部11より受け取ったソースコードを差分計算する。差分は行単位の差分で取得する(図2のS8、図5のS51)。この際、差分計算により得られる歴情情報はソースコードの履歴である。これに入力部11より変更履歴データに付加する履歴情報(例えば、修正者名、修正日付、修正番号など)を受け取って対応付ける(図5、S52)。獲得した差分情報は、保存部のソースコード保存部と、履歴情報保存部に更新登録する(図2のS9)。
これを更に具体的に説明する。ここで、現在保存中のソースコードを旧ソースコードとし、入力されたソースコードを新ソースコードとする(以下、同じ)。
図2は、前述した図1における出力部43から入力部11に入力された旧ソースコードを更新して保存部3に格納するまでの第1段階の動作を説明するためのフローチャートである。
まず、図2のステップS0において、入力部11に入力されたソースコードが履歴付きソースコードであるか否かが判断される。図3に示すように、履歴情報付データ構造を持ったソースコードB1は、履歴情報コメントデータ構造(例えば、/** から*/までの5つの行)と履歴情報マクロデータ構造(例えば、#ifHIST、#else、#endifの3つの行)を含む。
一方、図4に示すように、履歴情報付データ構造を持たないソースコードB2は、図3に例示した履歴情報コメントデータ構造(例えば、/** から*/までの5つの行)と履歴情報マクロデータ構造(例えば、#ifHIST、#else、#endifの3つの行)を含まない。
この図2のステップS0において、入力部11に入力された任意の(ユーザが指定する)旧ソースコードが履歴付きソースコードではないと判定されればステップS7に進んで、入力されたソースコードと対比すべき任意の新バージョンのソースコードをソースコード保存部32から取りだし、両者の差分を差分獲得部24(図1参照)により計算する(図2、S8)。この図2のステップS8に続いて、抽出した差分に対して、入力部11より付加履歴情報(修正者名、修正番号等)を受け取り、コードの差分履歴と対応付けてソースコード保存部32のデータを更新する(図2のS9)。
一方、図2のステップS0において、入力部11に入力されたソースコードが履歴付きソースコードであると判定されれば、ステップS1に進んで、字句解析を行い、ステップS1に続いて、ステップS4及びステップS2が実行され、ステップS4において、字句解析部21から受け取ったトークン列に基づいてマクロ構文解析が行なわれる。このマクロ構文解析は、入力された履歴情報付ソースコードが所定の形式に沿っているかを判定するためと、履歴情報の更新に利用するために行う。
又、図2のステップS4と同時に、ステップS2において、トークン列からコメントトークンに着目し、履歴管理用コメント解析部22に履歴管理用コメントトークンを入力する。履歴管理用のコメントであるかそうでないかは、コメント内部の形式が所定の履歴管理用データ構造に沿っているか否かにより判断する。履歴管理用コメント解析部22は、受け取ったコメントトークンを文字列としてコメント解析用に字句解析(図2のS2)・構文解析(図2のS3)し、履歴情報データ構造に沿っているかを確認し、沿っているときはそのデータ構造を獲得できる。沿っていないときは、そのコメントを通常のコメントとして認識しスキップさせる。
得られたソースコード上の履歴情報用マクロデータ及びコメントデータを併せ、保持部3中の履歴情報との対応の整合性を判定し、整合すれば履歴情報データ構造を作成する(図2のS5)。なお、履歴は、#if マクロのデファイン名と、コメント中のデータとして対応する履歴マクロのデファイン名を対応させる。
ソースコード差分獲得部24では、上記解析の結果を利用し、ソースコードの差分計算のため履歴情報をソースコードと分離する。履歴情報を記載したコメント、および、履歴情報用のマクロ構造を取り除く(図2のS6)。さらに、差分の計算となるベースソースコード取得のため、保存管理部3のソースコード保存部32から、新バージョンのソースコードを取得する(図2のS7)。そして、取得したソースコードと、入力部11より受け取ったソースコードを差分計算する。ここで、差分は行単位の差分で取得する(図2のS8、図5のS51)。図5に示す例では、入力ソースコード中のreturn 20/number" と現ソースコード中の" return 10/number" が差分である。
続いて、これに入力部11より履歴データに付加する履歴情報(例えば、修正者名、修正日付、修正番号等)を受け取って対応付ける(図5のS52)。そして、この獲得した差分情報は、保存管理部3のソースコード保存部32と、履歴情報保存部31に更新登録する(図2のS9)。
(ソースコード管理方法)
本実施形態における上述した変更履歴の保存動作は、実際上、以下に示すソースコード管理方法の手順に従って、順次実行されるようになっている。
本実施形態における上述した変更履歴の保存動作は、実際上、以下に示すソースコード管理方法の手順に従って、順次実行されるようになっている。
即ち、上述したように、ソースコード管理方法として、更新登録用として入力されたソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う第1のステップと、この字句解析に基づいて当該履歴管理用のマクロ解析を行う第2のステップと、この第2のステップに並行して作動し前記第1ステップでの字句解析に基づいてコメント解析用に字句解析および構文解析を行う第3のステップと、この第3のステップでコメント内部の形式が履歴情報データに沿ったものである場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する第4のステップと、前記第1乃至第4の各ステップの結果に基づいて作動し履歴情報とソースコードとを分離する第5のステップと、この第5のステップで分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する第6のステップと、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する第7のステップと、この抽出した差分情報をソースコードの履歴として更新登録する第8のステップとを備えた構成を採用した。
ここで、前述した入力されたソースコードが履歴情報を備えていない場合に機能し、上記ソースコードを上述した第1ステップ乃至第5ステップを越えて第6ステップの分離されたソースコードと同等に扱うように構成してもよい。
このようにすると、前述した請求項1乃至2記載のソースコード管理システムと同等の効果を得ることができ、ソースコード管理システムをより有効に実施することが可能となる。
(ソースコード管理プログラム)
上述したソースコード管理手法については、コンピュータ上では、以下の示すソースコード管理プログラムに従って実行されるようになっている。
上述したソースコード管理手法については、コンピュータ上では、以下の示すソースコード管理プログラムに従って実行されるようになっている。
即ち、ソースコードの履歴をソースコードと共に出力可能に更新するために、コンピュータを、更新登録用として入力されたソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、ソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う字句解析機能と、この字句解析の結果に基づいて当該履歴管理用のマクロ解析を行うマクロ解析機能と、前述したソースコードの字句解析機能に基づいてコメント解析用に字句解析および構文解析を行う構文解析機能と、この構文解析によってコメント内部の形式が履歴情報データに沿ったものであるとなった場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する履歴情報用データ作成機能と、これらの各機能の実行結果に基づいて作動し履歴情報とソースコードとを分離する履歴情報分離機能と、この分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する差分抽出機能と、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する履歴情報付加機能と、この抽出した差分情報をソースコードの履歴として更新登録する履歴更新登録機能とを実現させるようにした。
このため、これによると、前述した請求項4記載のソースコード管理システムと同等の効果を奏する管理プログラムを得ることができる。
〔全体的な動作:第2段階(変更したソースコードの出力動作)〕
次に、図6に基づいて、旧バージョンを更新した新バージョンのソースコードと履歴情報とを出力部4から出力する第2段階の動作について説明する。
次に、図6に基づいて、旧バージョンを更新した新バージョンのソースコードと履歴情報とを出力部4から出力する第2段階の動作について説明する。
上記ソースコード管理システムは、まず、入力部11から指定されたバージョンのソースコードを出力する。又出力処理手段4からの出力は、履歴情報をソースコード上のコメント・マクロに含めた形式で出力される場合と、履歴情報を含めないソースコードで出力される場合がある。履歴情報を含めない場合は、ソースコード保存部32からソースコードを取り出し、これを出力する(図6のS62A)。履歴情報をソースコード上のコメント・マクロに埋め込んだ出力形式の場合、履歴情報保存部から履歴情報データを取得する( 図6のS61)。次にソースコード保存部32からソースコードを取り出し(図6のS62B)、履歴情報データをソースコード上にコメント・マクロとして埋め込む処理を行う(図6のS63,図7)。
このとき、履歴情報データは差分を行単位で保存しており、もし追加、変更、削除が連続するとき、これらをブロック化し一つの修正とする。この場合、履歴毎の修正ブロックが、複数のブロックにまたがる時、マクロの構造が木構造に保てなくなり、#if 構文で記述できない場合がある(図9)。その場合は、修正したいブロックが以前のどのブロックにまたがっているかを木構造を辿り判定し、またがったブロック毎の共通の親接点を探し出し、親接点からみて差分が発見された直接の子ノード列を括り出す。くくりだされた子ノード列は以前に登録された履歴ブロックを解除し、再度、行単位のノードとして修正分を差分ブロックとして履歴情報マクロ出力する(図10)。この形式は前記の履歴情報用マクロ解析部の認識可能なデータ構造で、且つ、履歴情報用コメント解析部の認識可能なデータ構造である(図8)。
これを更に具体的に説明する。
出力部43は、新バージョンのソースコードを出力するが、出力は履歴情報をソースコード上のコメント・マクロに含めた形式で出力される場合と、履歴情報を含めないソースコードで出力される場合がある。
出力部43は、新バージョンのソースコードを出力するが、出力は履歴情報をソースコード上のコメント・マクロに含めた形式で出力される場合と、履歴情報を含めないソースコードで出力される場合がある。
履歴情報を含めない場合(図6:判定ステップS60でノーである場合)は、ソースコード保存部32からユーザが指定した新ソースコードを取得し(ステップS62)、履歴情報を新ソースコードに埋め込んで(ステップS63)、出力部43から出力する。一方、履歴情報をソースコード上のコメント・マクロに埋め込んだ出力形式の場合(判定ステップS60でイエスである場合)、履歴情報保存部31から履歴情報データを取得する(図6のS61)。
次に、ソースコード保存部32から新ソースコードを取り出し(図6のS62)、履歴情報データを新ソースコード上にコメント及びマクロ命令として埋め込む処理を行う(図6のS63、図7)。図7に示す例では、入力されたソースコードX上に、入力された旧ソースコードの履歴情報Y1と新ソースコードの履歴情報Y2が埋め込まれる。
図8は、図7に示した埋め込み処理を行なった結果の出力例Zである。図7に示した履歴情報Y1中の@3、@4は、図8に示すように、出力例Z中では、それぞれ"if(number==0)", "return 0;"である。また、図7に示した履歴情報Y2中の@5は、図8に示すように、出力例Z中では、"return
20/number"である。このように、出力例Zは、履歴情報用マクロ解析部の認識可能なデータ構造で、且つ、履歴情報用コメント解析部の認識可能なデータ構造である。
20/number"である。このように、出力例Zは、履歴情報用マクロ解析部の認識可能なデータ構造で、且つ、履歴情報用コメント解析部の認識可能なデータ構造である。
尚、参考のため履歴情報無しのソースコード出力例Wも示した。
このとき、履歴情報データは差分を行単位で保存しており、もし、追加、変更、削除が連続するとき、これらをブロック化し一つの修正とする。この場合、履歴毎の修正ブロックが、複数のブロックにまたがる時、マクロの構造が木構造に保てなくなり、#if 構文で記述できない場合がある(図9)。
このとき、履歴情報データは差分を行単位で保存しており、もし、追加、変更、削除が連続するとき、これらをブロック化し一つの修正とする。この場合、履歴毎の修正ブロックが、複数のブロックにまたがる時、マクロの構造が木構造に保てなくなり、#if 構文で記述できない場合がある(図9)。
この図9に例示するように、履歴情報1が2行の文("if(number==0"と"return 0; ")を追加するものであり、履歴情報2が当該追加部分と"number
++" とを削除するものであり、 当該追加部分と"number ++" とが#endifを挟んで2つのブロックにまたがる場合は、#if
項文で記述できない。
++" とを削除するものであり、 当該追加部分と"number ++" とが#endifを挟んで2つのブロックにまたがる場合は、#if
項文で記述できない。
その場合は、修正したいブロックが以前のどのブロックにまたがっているかを木構造を辿り判定し、またがったブロック毎の共通の親接点を探し出し、親接点からみて差分が発見された直接の子ノード列を括り出す。くくりだされた子ノード列は以前に登録された履歴ブロックを解除し、再度、行単位のノードとして修正分を差分ブロックとして履歴情報マクロ出力する(図10)。
(ソースコード管理方法)
本実施形態における変更したソースコードの出力動作は、実際上、以下に示すソースコード管理方法の手順に従って、順次実行されるようになっている。
本実施形態における変更したソースコードの出力動作は、実際上、以下に示すソースコード管理方法の手順に従って、順次実行されるようになっている。
即ち、上述したように、ソースコード管理方法として、出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する第1の工程と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す第2に工程と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う第3の工程と、この第3の工程で処理されたソースコードを出力する第4の工程とを備えた構成とした。このようにすると、前述したソースコードを履歴情報と共に円滑に且つ確実に取り出すことができるという利点がある。
(ソースコード管理プログラム)
更に、上述したソースコード管理手法については、コンピュータ上では、以下の示すソースコード管理プログラムに従って実行されるようになっている。
更に、上述したソースコード管理手法については、コンピュータ上では、以下の示すソースコード管理プログラムに従って実行されるようになっている。
即ち、本実施形態にかかるソースコード管理プログラムでは、ソースコードの履歴をソースコードと共に出力させるために、コンピュータを、出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す保存情報取り出し機能と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う履歴情報マージ機能と、この履歴情報がマージされたソースコードを出力するソースコード出力機能とを実現させるようにした。このため、これによると、前述したソースコード管理システムと同等の出力機能を備えたソースコード管理プログラムを得ることができる。
〔上記第実施形態の効果〕
本第実施形態では、上述したように、例えば履歴情報が一定の書式に従ったデータ構造でコメントやマクロに埋め込まれるため、複雑な解析を行なうことなく履歴情報とソースコードとの分離ができるため、ソースコードの表示ツールとして強調表示などの加工を容易に成し得るという利点がある。又、解析手段に有する構文解析手段の機能によってソースコード上からのコメント・マクロの解析が可能となり、これがため、ソースコードと当該管理システムで履歴情報を相互に変換できるという利点がある。更に差分計算に際しては、差分抽出機能が有効に作動して履歴情報が分離されたソースコードと前述した保存管理手段に保存されているソースコードとの差分を抽出するようにしたので、履歴情報を的確に分離捕捉することができるという利点がある。
本第実施形態では、上述したように、例えば履歴情報が一定の書式に従ったデータ構造でコメントやマクロに埋め込まれるため、複雑な解析を行なうことなく履歴情報とソースコードとの分離ができるため、ソースコードの表示ツールとして強調表示などの加工を容易に成し得るという利点がある。又、解析手段に有する構文解析手段の機能によってソースコード上からのコメント・マクロの解析が可能となり、これがため、ソースコードと当該管理システムで履歴情報を相互に変換できるという利点がある。更に差分計算に際しては、差分抽出機能が有効に作動して履歴情報が分離されたソースコードと前述した保存管理手段に保存されているソースコードとの差分を抽出するようにしたので、履歴情報を的確に分離捕捉することができるという利点がある。
即ち、本実施形態では、以下の効果を奏する。
(1).特別な処理無くソースコード管理システムから取り出した履歴情報付ソースコードをコンパイル可能な点である。その理由は、コメントとマクロに履歴情報を出力することで、コンパイル時に履歴となる部分がコンパイルされないためである。
(2).ソースコード上で履歴情報を確認できるだけでなく、ソースコード上での履歴情報の視認性が向上する点、ソースコードの表示ツールとして強調表示などの加工が容易となる点がある。その理由は一定の書式に従ったデータ構造で履歴情報をコメントやマクロに埋め込むため、複雑な解析を行わずとも履歴情報とソースコードの分離ができるためである。
(3).履歴情報をソースコードとソースコード管理システムで相互に変換できる点である。その理由は、ソースコード管理システムで持つ履歴情報をソースコード上にもれなく埋め込み可能で、且つ、ソースコード上からのコメント・マクロを解析可能な構文解析部を備えているためである。
(1).特別な処理無くソースコード管理システムから取り出した履歴情報付ソースコードをコンパイル可能な点である。その理由は、コメントとマクロに履歴情報を出力することで、コンパイル時に履歴となる部分がコンパイルされないためである。
(2).ソースコード上で履歴情報を確認できるだけでなく、ソースコード上での履歴情報の視認性が向上する点、ソースコードの表示ツールとして強調表示などの加工が容易となる点がある。その理由は一定の書式に従ったデータ構造で履歴情報をコメントやマクロに埋め込むため、複雑な解析を行わずとも履歴情報とソースコードの分離ができるためである。
(3).履歴情報をソースコードとソースコード管理システムで相互に変換できる点である。その理由は、ソースコード管理システムで持つ履歴情報をソースコード上にもれなく埋め込み可能で、且つ、ソースコード上からのコメント・マクロを解析可能な構文解析部を備えているためである。
このように、本実施形態によると、前述した従来例で生じていた、ソースコードの取り出し時に履歴情報が失われてしまう、という不都合を、上述したように確実に改善することができ、更に履歴管理システムとは別にコメントやマクロに記載された履歴情報は一貫性が無く履歴管理システムとの不整合が起きる、という不都合を、上述したように確実に改善することができるという従来にない優れた効果を得ることができる。
ここで、上述した実施形態において、出力時に履歴情報マクロの#if の構造にあわせインデントをそろえて出力してもよい。このようにすると、ソースコード単体での視認性が向上する。
又、マクロでの履歴情報管理でなく、ファイル毎にコメント部に対してDiff形式の出力を記載しておいてもよい。この場合、コメント内部を解析してDiffから以前の履歴を復元可能である。
更に、ソースコードの差分を行単位で取り、これをブロック化せず全て行単位で履歴情報マクロとして出力してもよい。この場合は、マクロの構造を複雑に解析する必要が無いが、ソースコード単体での視認性については多少見通しが良くないと考えられる。反面、履歴情報マクロの構造は単純になるため、ソースコードを加工して履歴情報を取り出すツールの作成が容易になる。
又、行単位でなく、プログラム言語の構文要素での差分をとることで代用しても良い。その場合、ソースコード管理システムへの入力にソースコードを構文解析可能なだけのマクロのデファイン値が必要である。プログラム言語の構文要素を単位として差分をとることで、出力時にもソースコードの視認性が向上する。
以上のように、本発明によれば、履歴情報とともに、ソースコードを取り出すことができる。また、履歴管理システムの内部で管理される履歴情報と修正されたソースコード内のコメントに記載された履歴情報を整合させることができる。また、専用の表示ツールを使用することなく、修正履歴とソースコードを表示することができる。
本発明は、コンピュータ、コンピュータプログラミングの作成・変更に利用することができる。
1 入力手段
2 解析手段
3 保存管理手段
4 出力処理手段
5 表示装置
6 登録装置
11 入力部
12 履歴付有無入力判定部
21 字句解析部
22 履歴管理用マクロ解析部
23 履歴管理用コメント解析部
31 履歴情報保存部
32 ソースコード保存部
41 履歴付有無出力判定部
42 履歴・ソースコードマージ部
43 出力部
2 解析手段
3 保存管理手段
4 出力処理手段
5 表示装置
6 登録装置
11 入力部
12 履歴付有無入力判定部
21 字句解析部
22 履歴管理用マクロ解析部
23 履歴管理用コメント解析部
31 履歴情報保存部
32 ソースコード保存部
41 履歴付有無出力判定部
42 履歴・ソースコードマージ部
43 出力部
Claims (10)
- 入力手段から入力されるソースコードの履歴を解析し現在管理されているソースコードとの差分を抽出する解析手段と、この解析手段で抽出された差分と前記入力手段から入力される履歴情報およびソースコードとを合わせて保存する保存管理手段とを備え、
前記保存管理手段で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上に所定の履歴情報をマージして出力する出力処理手段を、前記保存管理手段に併設したことを特徴とするソースコード管理システム。 - 入力手段から入力されるソースコードの履歴を解析し現在管理されているソースコードとの差分を抽出する解析手段と、この解析手段で抽出された差分と前記入力手段から入力される履歴情報およびソースコードとを合わせて保存する保存管理手段とを備え、
前記保存管理手段で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上のコメント・マクロに対応する履歴情報を埋め込んでコンパイル可能な形式で出力する出力処理手段を、前記保存管理手段に併設したことを特徴とするソースコード管理システム。 - 前記請求項2記載のソースコード管理システムにおいて、
前記解析手段が、入力されるソースコードを受けて字句解析しトークン列を作成する字句解析部と、この字句解析部からのトークン列を受けて履歴情報の内の少なくとも差分を表すマクロのデータ構造を解析し履歴管理用のマクロデータを作成する履歴管理用マクロ解析部と、前記字句解析部からのトークン列を受けて履歴情報の内のコメントトークンを表す文字列をコメント解析用に字句解析し且つ構文解析して履歴情報用のコメントデータを作成する履歴管理用コメント解析部とを有し、
更に、この履歴管理用コメント解析部および前記履歴管理用マクロ解析部での解析結果に基づいて機能し当該ソースコードと前記保存管理手段に保存されているソースコードとの差分を抽出し前記履歴管理用のマクロデータ及びコメントでータと合わせて前記保存管理手段に更新登録するソースコード差分獲得部を備えたことを特徴とするソースコード管理システム。 - 前記請求項3記載のソースコード管理システムにおいて、
前記解析手段のソースコード差分獲得部解析手段が、前記履歴管理用コメント解析部および履歴管理用マクロ解析部での解析結果に基づいて機能し当該履歴情報をソースコードから分離する履歴情報分離機能と、この履歴情報が分離されたソースコードと前記保存管理手段に保存されているソースコードとの差分を抽出する差分抽出機能と、この抽出された差分を前記履歴管理用のマクロデータ及びコメントでータと合わせて差分情報として前記保存管理手段に更新登録する差分情報登録制御機能とを備えていることを特徴としたソースコード管理システム。 - 前記請求項1乃至4のいずれか一つに記載のソースコード管理システムにおいて、
前記出力処理手段を、前記入力部からの指示に基づいて作動しソースコードが履歴情報を含むか否か判定すると共にその判定結果に基づいて出力形式を特定する履歴付有無出力判定部と、この履歴付有無出力判定部の指示に従って作動し履歴管理用のデータ構造とソースコードとを合成し前記履歴付有無出力判定部から指示された出力形式に従ってコンパイル可能な形式で、コメントおよびマクロによる履歴管理用データを埋め込んだ形でソースコードを出力する履歴・ソースコードマージ部とを備えた構成としたことを特徴とするソースコード管理システム。 - 更新登録用として入力されたソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う第1のステップと、この字句解析に基づいて当該履歴管理用のマクロ解析を行う第2のステップと、この第2のステップに並行して作動し前記第1ステップでの字句解析に基づいてコメント解析用に字句解析および構文解析を行う第3のステップと、この第3のステップでコメント内部の形式が履歴情報データに沿ったものである場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する第4のステップと、前記第1乃至第4の各ステップの結果に基づいて作動し履歴情報とソースコードとを分離する第5のステップと、この第5のステップで分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する第6のステップと、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する第7のステップと、この抽出した差分情報をソースコードの履歴をして更新登録する第8のステップとを備えたことを特徴とするソースコード管理方法。
- 前記請求項6記載のソースコード管理方法において、
前記入力されたソースコードが履歴情報を備えていない場合に機能し、前記ソースコードを前記第1ステップ乃至第5ステップを越えて前記第6ステップの分離されたソースコードと同等に扱うように構成したことを特徴とするソースコード管理方法。 - 出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する第1の工程と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す第2に工程と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う第3の工程と、この第3の工程で処理されたソースコードを出力する第4の工程とを備えたことを特徴とするソースコード管理方法。
- ソースコードの履歴をソースコードと共に出力可能に更新するためにコンピュータに、更新登録用として入力されたソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、ソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う字句解析機能と、この字句解析の結果に基づいて当該履歴管理用のマクロ解析を行うマクロ解析機能と、前述したソースコードの字句解析機能に基づいてコメント解析用に字句解析および構文解析を行う構文解析機能と、この構文解析によってコメント内部の形式が履歴情報データに沿ったものであるとなった場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する履歴情報用データ作成機能と、これらの各機能の実行結果に基づいて作動し履歴情報とソースコードとを分離する履歴情報分離機能と、この分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する差分抽出機能と、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する履歴情報付加機能と、この抽出した差分情報をソースコードの履歴として更新登録する履歴情報更新登録機能とを実現させるためのソースコード管理プログラム。
- ソースコードの履歴をソースコードと共に出力させるためにコンピュータに、出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す保存情報取り出し機能と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う履歴情報マージ機能と、この履歴情報がマージされたソースコードを出力するソースコード出力機能とを実現させるためのソースコード管理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005089906A JP2006268777A (ja) | 2005-03-25 | 2005-03-25 | ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005089906A JP2006268777A (ja) | 2005-03-25 | 2005-03-25 | ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006268777A true JP2006268777A (ja) | 2006-10-05 |
Family
ID=37204622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005089906A Pending JP2006268777A (ja) | 2005-03-25 | 2005-03-25 | ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006268777A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010277500A (ja) * | 2009-06-01 | 2010-12-09 | Mitsubishi Electric Corp | ソフトウェア管理装置 |
CN114706749A (zh) * | 2022-03-03 | 2022-07-05 | 网宿科技股份有限公司 | 代码覆盖率的确定方法、装置、电子设备及存储介质 |
-
2005
- 2005-03-25 JP JP2005089906A patent/JP2006268777A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010277500A (ja) * | 2009-06-01 | 2010-12-09 | Mitsubishi Electric Corp | ソフトウェア管理装置 |
CN114706749A (zh) * | 2022-03-03 | 2022-07-05 | 网宿科技股份有限公司 | 代码覆盖率的确定方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100146491A1 (en) | System for Preparing Software Documentation in Natural Languages | |
US6571248B1 (en) | Data processing method and apparatus | |
US20150128114A1 (en) | Parser | |
JPH0830620A (ja) | 構造検索装置 | |
JP6440895B2 (ja) | ソフトウェア分析装置及びソフトウェア分析方法 | |
JP2009176064A (ja) | ソフトウェアリファクタリング支援装置および方法 | |
JP3832693B2 (ja) | 構造化文書検索表示方法及び装置 | |
JP2006268777A (ja) | ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラム | |
JP2004126866A (ja) | 記述出力抑制プログラム解析装置及び記述出力抑制プログラム解析方法 | |
JP3584204B2 (ja) | 原始プログラム自動変換装置 | |
JP2008186311A (ja) | 複数種類の自然言語でコメントが記述されたソースファイルのファイル変換システム | |
JPH06290039A (ja) | プログラム変更方法 | |
JP2005092519A (ja) | オブジェクト指向プログラムの作成支援装置及び作成支援方法 | |
JP4641238B2 (ja) | アプリケーション動作追跡支援装置 | |
JP4904724B2 (ja) | 解析プログラム、解析方法および解析装置 | |
JP2003108369A (ja) | Webからの要求を受け取り結果出力を行うプログラムの自動生成 | |
JP2006260053A (ja) | 特定サブルーチン検索システムおよびこれに用いるプログラム | |
JPH11259460A (ja) | 文書処理装置 | |
JP2004258848A (ja) | プログラム作成支援方法およびシステム並びにプログラム | |
JP2000181691A (ja) | プログラム構造解析方式 | |
JP2003177923A (ja) | ポーティング支援システムにおける予約語変換方法 | |
JP2010266909A (ja) | プログラミング言語処理方法 | |
JP2004086446A (ja) | 単体テストプログラム自動生成方式 | |
JP2007265095A (ja) | ソースプログラム検証プログラム | |
JP2008204446A (ja) | ソースファイル編集システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080731 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090428 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090901 |