(57)【要約】【課題】  履歴管理システムの内部で管理される履歴情報と修正されたソースコード内のコメントに記載された履歴情報を整合させ、専用の表示ツールを使用することなく、修正履歴とソースコードとを表示する。【解決手段】  ソースコードの履歴を管理するソースコード履歴管理装置において、新ソースコード上に当該新ソースコードの履歴をマージして出力する出力部４３と、この出力部４３の出力に基づいて、新ソースコードの履歴を解析するとともに当該ソースコードと旧ソースコードとの差分を獲得する解析部２とを備え、出力処理手段４から、新又は旧ソースコード上に、旧又は新旧ソースコードの履歴をマージして出力する。履歴は、ソースコード内に記述される所定様式のコメント及び所定様式のマクロ命令である。【選択図】  図１
2006268777.tif 000002
【特許請求の範囲】
【請求項１】
入力手段から入力されるソースコードの履歴を解析し現在管理されているソースコードとの差分を抽出する解析手段と、この解析手段で抽出された差分と前記入力手段から入力される履歴情報およびソースコードとを合わせて保存する保存管理手段とを備え、
前記保存管理手段で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上に所定の履歴情報をマージして出力する出力処理手段を、前記保存管理手段に併設したことを特徴とするソースコード管理システム。
【請求項２】
入力手段から入力されるソースコードの履歴を解析し現在管理されているソースコードとの差分を抽出する解析手段と、この解析手段で抽出された差分と前記入力手段から入力される履歴情報およびソースコードとを合わせて保存する保存管理手段とを備え、
前記保存管理手段で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上のコメント・マクロに対応する履歴情報を埋め込んでコンパイル可能な形式で出力する出力処理手段を、前記保存管理手段に併設したことを特徴とするソースコード管理システム。
【請求項３】
前記請求項２記載のソースコード管理システムにおいて、
前記解析手段が、入力されるソースコードを受けて字句解析しトークン列を作成する字句解析部と、この字句解析部からのトークン列を受けて履歴情報の内の少なくとも差分を表すマクロのデータ構造を解析し履歴管理用のマクロデータを作成する履歴管理用マクロ解析部と、前記字句解析部からのトークン列を受けて履歴情報の内のコメントトークンを表す文字列をコメント解析用に字句解析し且つ構文解析して履歴情報用のコメントデータを作成する履歴管理用コメント解析部とを有し、
更に、この履歴管理用コメント解析部および前記履歴管理用マクロ解析部での解析結果に基づいて機能し当該ソースコードと前記保存管理手段に保存されているソースコードとの差分を抽出し前記履歴管理用のマクロデータ及びコメントでータと合わせて前記保存管理手段に更新登録するソースコード差分獲得部を備えたことを特徴とするソースコード管理システム。
【請求項４】
前記請求項３記載のソースコード管理システムにおいて、
前記解析手段のソースコード差分獲得部解析手段が、前記履歴管理用コメント解析部および履歴管理用マクロ解析部での解析結果に基づいて機能し当該履歴情報をソースコードから分離する履歴情報分離機能と、この履歴情報が分離されたソースコードと前記保存管理手段に保存されているソースコードとの差分を抽出する差分抽出機能と、この抽出された差分を前記履歴管理用のマクロデータ及びコメントでータと合わせて差分情報として前記保存管理手段に更新登録する差分情報登録制御機能とを備えていることを特徴としたソースコード管理システム。
【請求項５】
前記請求項１乃至４のいずれか一つに記載のソースコード管理システムにおいて、
前記出力処理手段を、前記入力部からの指示に基づいて作動しソースコードが履歴情報を含むか否か判定すると共にその判定結果に基づいて出力形式を特定する履歴付有無出力判定部と、この履歴付有無出力判定部の指示に従って作動し履歴管理用のデータ構造とソースコードとを合成し前記履歴付有無出力判定部から指示された出力形式に従ってコンパイル可能な形式で、コメントおよびマクロによる履歴管理用データを埋め込んだ形でソースコードを出力する履歴・ソースコードマージ部とを備えた構成としたことを特徴とするソースコード管理システム。
【請求項６】
更新登録用として入力されたソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う第１のステップと、この字句解析に基づいて当該履歴管理用のマクロ解析を行う第２のステップと、この第２のステップに並行して作動し前記第１ステップでの字句解析に基づいてコメント解析用に字句解析および構文解析を行う第３のステップと、この第３のステップでコメント内部の形式が履歴情報データに沿ったものである場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する第４のステップと、前記第１乃至第４の各ステップの結果に基づいて作動し履歴情報とソースコードとを分離する第５のステップと、この第５のステップで分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する第６のステップと、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する第７のステップと、この抽出した差分情報をソースコードの履歴をして更新登録する第８のステップとを備えたことを特徴とするソースコード管理方法。
【請求項７】
前記請求項６記載のソースコード管理方法において、
前記入力されたソースコードが履歴情報を備えていない場合に機能し、前記ソースコードを前記第１ステップ乃至第５ステップを越えて前記第６ステップの分離されたソースコードと同等に扱うように構成したことを特徴とするソースコード管理方法。
【請求項８】
出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する第１の工程と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す第２に工程と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う第３の工程と、この第３の工程で処理されたソースコードを出力する第４の工程とを備えたことを特徴とするソースコード管理方法。
【請求項９】
ソースコードの履歴をソースコードと共に出力可能に更新するためにコンピュータに、更新登録用として入力されたソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、ソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う字句解析機能と、この字句解析の結果に基づいて当該履歴管理用のマクロ解析を行うマクロ解析機能と、前述したソースコードの字句解析機能に基づいてコメント解析用に字句解析および構文解析を行う構文解析機能と、この構文解析によってコメント内部の形式が履歴情報データに沿ったものであるとなった場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する履歴情報用データ作成機能と、これらの各機能の実行結果に基づいて作動し履歴情報とソースコードとを分離する履歴情報分離機能と、この分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する差分抽出機能と、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する履歴情報付加機能と、この抽出した差分情報をソースコードの履歴として更新登録する履歴情報更新登録機能とを実現させるためのソースコード管理プログラム。
【請求項１０】
ソースコードの履歴をソースコードと共に出力させるためにコンピュータに、出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す保存情報取り出し機能と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う履歴情報マージ機能と、この履歴情報がマージされたソースコードを出力するソースコード出力機能とを実現させるためのソースコード管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラムの係り、特に保存されている旧ソースコード上のコメントとマクロ命令を構文解析して履歴情報となるコメントとマクロ命令を獲得し、これらをソースコードと共に新ソースコードとして出力し又は登録し表示し得るソースコード管理システム、ソースコード管理方法、及びソースコード管理プログラムに関する。
【背景技術】
【０００２】
ソースコード（ソースプログラム）は高級プログラム言語（人間の理解できるプログラム言語）で記述されたプログラムであり、オブジェクトコード（機械語）に翻訳してハードウエアとしてのコンピュータにより実行されるものである。このようなソースコードは、作成途上におけるレコード（行）の変更，追加，削除，或いは完成後の仕様変更があったときは、多くは履歴変更として管理されている。
【０００３】
例えば、特許文献１（プログラム修正情報管理方法）では、ソースコードの修正コメント行を修正前のソースコードに書き加えることなく、修正情報を管理するようになっている。そのため、バージョン毎に、追加，変更，削除された各行を全て保存し、当該変更した行に追加（Ａ），変更（Ｕ），削除（Ｄ）なる変更区分を付与し、履歴一覧として表示する。
【０００４】
又、特許文献２（プログラムソースの修正履歴管理方法・・）では、バージョンの異なるソースコードをバージョン毎に一つのディレクトリへ格納し、比較したいソースコードのディレクトリ名のチェックボックスにチェックを入れる。具体的には、比較対象であるソースコード差分に相当する新バージョン側のソースコードにかかる行番号，関数名，修正項目番号等のコメント文が修正形式を示す記号と共に修正履歴情報として修正履歴管理データベースに登録する。この場合、修正形式を示す記号には「追加」「挿入」「削除」等がある。そして、修正履歴情報は修正履歴解析画面に表示されるようになっている。
【０００５】
このように、従来の履歴管理の多くはソースコードのバージョン管理のために用いられ、ソースコードのそれぞれのバージョンに対して変更差分を保存し管理するようになっている。又、入力されるソースコードと履歴管理システムが管理するソースコードとを行単位で差分抽出し、履歴管理システムの内部形式で表して管理する。出力時には指定されたバージョンのソースコードを差分の記録された内部形式から復元し、ソースコードとして出力させるようになっている。又、ソースコードの差分の履歴を確認する際には、履歴管理システムの内部形式用のビューアを利用し、変更履歴を一括して視認させるようになっている。
【０００６】
【特許文献１】特開２０００−１１２７４３号公報
【特許文献２】特開２００１−２５６０４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来例にあっては、履歴情報が履歴管理システム上でのみ利用されるようになっているため、ソースコードの取り出し時に履歴情報が失われるという不都合があった。
【０００８】
又、従来より、ソースコードの履歴管理にあって、コメントやマクロは記述的な制約がないことから多くは個人に依存しており、これがためソースコード上に記載されたコメントやマクロ命令に記載された履歴情報に一貫性がなく、管理システム上で履歴管理中の履歴情報と不整合が生じ、履歴表示ツール等の支援ツールなどによる加工も困難なものとなっていた。即ち、従来のソースコードの履歴管理システムでは、ソースコードの履歴情報を履歴管理システム内部で管理しているので取り出されたソースコードからは履歴情報を読み取ることが困難であった。
【０００９】
そこで、本発明では、かかる従来例の有する不都合を改善し、特に履歴管理中の履歴情報とソースコード上の履歴情報との不整合を無くすると共に履歴情報とソースコードとを円滑に取り出し得るようにしたソースコード管理システム，ソースコード管理方法、及びその管理プログラムを提供することを、その目的とする。
【課題を解決するための手段】
【００１０】
本発明では、入力手段から入力されるソースコードの履歴を解析し現在管理されているソースコードとの差分を抽出する解析手段と、この解析手段で抽出された差分と前記入力手段から入力される履歴情報およびソースコードとを合わせて保存する保存管理手段とを備えている。そして、前述した保存管理手段で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上に所定の履歴情報をマージして出力する出力処理手段を、前述した保存管理手段に併設する、という構成を採っている（請求項１）。ここで、出力処理手段としては、保存管理手段で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上のコメント・マクロに対応する履歴情報を埋め込んでコンパイル可能な形式で出力する、としてもよい（請求項２）。
【００１１】
このため、本実施形態では例えばコメントとマクロに履歴情報を出力することでコンパイル時に履歴となる部分がコンパイルされないことから、管理システムから取り出した履歴情報付ソースコードを何らの処理を施すことなくコンパイル可能とした。又履歴情報は規定のデータ構造によって管理されるので、複雑な解析を行うことなく履歴情報とソースコードとの分離ができることから、ソースコード表示のための支援ツールによる加工（強調表示等の）が容易になる等、ソースコード上での履歴情報の視認性を向上させることができるという利点がある。
【００１２】
又、本発明では、前述した解析手段を、入力されるソースコードを受けて字句解析しトークン列を作成する字句解析部と、この字句解析部からのトークン列を受けて履歴情報の内の少なくとも差分を表すマクロのデータ構造を解析し履歴管理用のマクロデータを作成する履歴管理用マクロ解析部と、前述した字句解析部からのトークン列を受けて履歴情報の内のコメントトークンを表す文字列をコメント解析用に字句解析し且つ構文解析して履歴情報用のコメントデータを作成する履歴管理用コメント解析部とを備えた構成とする。更にこの解析手段には、履歴管理用コメント解析部および前述した履歴管理用マクロ解析部での解析結果に基づいて機能し当該ソースコードと前述した保存管理手段に保存されているソースコードとの差分を抽出し履歴管理用のマクロデータ及びコメントでータと合わせて保存管理手段に更新登録するソースコード差分獲得部を装備するようにした（請求項３）。
【００１３】
ここで、前述した解析手段のソースコード差分獲得部解析手段を、前述した履歴管理用コメント解析部および履歴管理用マクロ解析部での解析結果に基づいて機能し当該履歴情報をソースコードから分離する履歴情報分離機能と、この履歴情報が分離されたソースコードと前述した保存管理手段に保存されているソースコードとの差分を抽出する差分抽出機能と、この抽出された差分を前述した履歴管理用のマクロデータ及びコメントでータと合わせて差分情報として前述した保存管理手段に更新登録する差分情報登録制御機能とを備えた構成としてもよい（請求項４）。
【００１４】
このようにすると、例えば履歴情報が一定の書式に従ったデータ構造でコメントやマクロに埋め込まれるため、複雑な解析を行なうことなく履歴情報とソースコードとの分離ができるため、ソースコードの表示ツールとして強調表示などの加工を容易に成し得るという利点がある。又、解析手段に有する構文解析手段の機能によってソースコード上からのコメント・マクロの解析が可能となり、これがため、ソースコードと当該管理システムで履歴情報を相互に変換できるという利点がある。更に差分計算に際しては、差分抽出機能が有効に作動して履歴情報が分離されたソースコードと前述した保存管理手段に保存されているソースコードとの差分を抽出するようにしたので、履歴情報を的確に分離捕捉することができるという利点がある。
【００１５】
又、本発明では、前述した出力処理手段を、前述した入力部からの指示に基づいて作動しソースコードが履歴情報を含むか否か判定すると共にその判定結果に基づいて出力形式を特定する履歴付有無出力判定部と、この履歴付有無出力判定部の指示に従って作動し履歴管理用のデータ構造とソースコードとを合成し前記履歴付有無出力判定部から指示された出力形式に従ってコンパイル可能な形式で、コメントおよびマクロによる履歴管理用データを埋め込んだ形でソースコードを出力する履歴・ソースコードマージ部とを備えた構成とした（請求項５）。
【００１６】
これにより、上記ソース管理システムは、入力手段から指定されたバージョンのソースコードを出力することができる。この場合の出力は、履歴情報をソースコード上のコメント・マクロに含めた形態で出力する場合と、履歴情報を含めないソースコードで出力する場合とがあり、いずれの場合も極く容易に対応し得るという利点がある。
【００１７】
更に、本発明では、ソースコード管理方法として、更新登録用として入力されたソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う第１のステップと、この字句解析に基づいて当該履歴管理用のマクロ解析を行う第２のステップと、この第２のステップに並行して作動し前記第１ステップでの字句解析に基づいてコメント解析用に字句解析および構文解析を行う第３のステップと、この第３のステップでコメント内部の形式が履歴情報データに沿ったものである場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する第４のステップと、前記第１乃至第４の各ステップの結果に基づいて作動し履歴情報とソースコードとを分離する第５のステップと、この第５のステップで分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する第６のステップと、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する第７のステップと、この抽出した差分情報をソースコードの履歴をして更新登録する第８のステップとを備えた構成を採用した（請求項６）。このようにすると、前述した請求項１乃至２記載のソースコード管理システムと同等の効果を得ることができ、ソースコード管理システムをより有効に実施することができる。
【００１８】
又、本発明では、ソースコード管理方法として、前述した入力されたソースコードが履歴情報を備えていない場合に機能し、上記ソースコードを上述した第１ステップ乃至第５ステップを越えて第６ステップの分離されたソースコードと同等に扱うように構成してもよい（請求項７）。
【００１９】
更に、本発明では、出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する第１の工程と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す第２の工程と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う第３の工程と、この第３の工程で処理されたソースコードを出力する第４の工程とを備えた構成とした（請求項８）。
【００２０】
このようにすると、前述したソースコードを履歴情報と共に円滑に且つ確実に取り出すことができるという利点がある。
【００２１】
又、本発明にかかるソースコード管理プログラムでは、ソースコードの履歴をソースコードと共に出力可能に更新するために、コンピュータを、更新登録用として入力されたソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、ソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う字句解析機能と、この字句解析の結果に基づいて当該履歴管理用のマクロ解析を行うマクロ解析機能と、前述したソースコードの字句解析機能に基づいてコメント解析用に字句解析および構文解析を行う構文解析機能と、この構文解析によってコメント内部の形式が履歴情報データに沿ったものであるとなった場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する履歴情報用データ作成機能と、これらの各機能の実行結果に基づいて作動し履歴情報とソースコードとを分離する履歴情報分離機能と、この分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する差分抽出機能と、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する履歴情報付加機能と、この抽出した差分情報をソースコードの履歴として更新登録する履歴更新登録機能とを実現させるようにした（請求項９）。
【００２２】
このため、これによると、前述した請求項４記載のソースコード管理システムと同等の効果を奏する管理プログラムを得ることができる。
【００２３】
更に、本発明にかかるソースコード管理プログラムでは、ソースコードの履歴をソースコードと共に出力させるためにコンピュータを、出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す保存情報取り出し機能と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う履歴情報マージ機能と、この履歴情報がマージされたソースコードを出力するソースコード出力機能とを実現させるようにした（請求項１０）。
【００２４】
このため、これによると、前述した請求項５記載のソースコード管理システムと同等の効果を奏するソースコード管理プログラムを得ることができる。
【発明の効果】
【００２５】
以上のように、本発明によると、ソースコードと共に履歴情報を出力することが可能となり、かつ履歴情報はソースコード上のコメント・マクロの形態で出力できるので、コンパイル可能なソースコードを履歴情報を失うことなく出力できるという従来にない優れた効果を奏する。同時に、履歴情報は規定のデータ構造によって管理されるので、複雑な解析を行うことなく履歴情報とソースコードとの分離ができ、これがためソースコード表示のための支援ツールによる加工（強調表示等の）が容易になる等、ソースコード上での履歴情報の視認性を向上させることができるという従来にない優れた効果を奏する。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施形態を図面に従って説明する。
【００２７】
本実施形態では、ソースコード上での変更履歴管理を支援するソースコード管理システムについての一例を示す。この実施形態におけるソースコード管理システムは、入力されたソースコードのコメントとマクロを構文解析しその解析結果から履歴情報を獲得可能な構文解析部を備えた解析手段と、その解析結果を不足無く保存可能な保存管理手段と、保存された内容を取り出す際に履歴情報をコメントとマクロを組み合わせてソースコード上に埋め込み可能な出力処理手段を備え、ソースコードのコメントとマクロから履歴情報を相互に変換できるソースコード管理システムとした点に特徴を備えている。以下、これを詳細に説明する。
【００２８】
〔全体的構成〕
図１において、ソースコード管理システムは、入力手段１と、この入力手段１から入力されるソースコードの履歴を解析し現在管理されているソースコードとの差分を抽出する解析手段２と、この解析手段２で抽出された差分と入力手段１から入力される履歴情報およびソースコードとを合わせて保存する保存管理手段３とを備えている。更に、前述した保存管理手段３で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上に所定の履歴情報をマージして出力する出力処理手段４を備えている。ここで、入力手段１は、管理対象と成るソースコード等を入力する入力部１１と、この入力部１１で入力されるソースコードの履歴情報を分析する履歴付有無入力判定部１２とを備えている。又、出力処理手段４は、保存管理手段３で保存されているソースコードとこれに対応する履歴情報とを読み出すと共に当該ソースコード上のコメント・マクロに対応する履歴情報を埋め込んでコンパイル可能な形式で出力する機能を備えている。
【００２９】
このため、本実施形態では例えばコメントとマクロに履歴情報を出力することでコンパイル時に履歴となる部分がコンパイルされないことから、管理システムから取り出した履歴情報付ソースコードを何らの処理を施すことなくコンパイル可能とした。
【００３０】
前述した入力手段１にあって、入力部１１からは、管理対象たるソースコードおよびその履歴情報が、又出力形式指定が、それぞれ入力され、更に、当該システムから外部出力するための出力形式指定も同時に入力されるようになっている。この場合、ソースコード，履歴情報および入力形式指定は、ソースコードの修正を当該管理システムに登録する際に使用される。又出力形式指定は当該管理システムから現在保存中のソースコードを取り出す場合に使用される。又、前述した履歴付有無入力判定部１２は、入力部１１からのソースコードが履歴情報を含むソースコードか否かを判定する。この判定は入力部１１からの入力形式指定をもって成される。
【００３１】
前述した解析手段２は、入力されるソースコードを受けて字句解析しトークン列を作成する字句解析部２１と、この字句解析部２１からのトークン列を受けて履歴情報の内の少なくとも差分を表すマクロのデータ構造を解析し履歴管理用のマクロデータを作成する履歴管理用マクロ解析部２２と、前述した字句解析部２１からのトークン列を受けて履歴情報の内のコメントトークンを表す文字列をコメント解析用に字句解析し且つ構文解析して履歴情報用のコメントデータを作成する履歴管理用コメント解析部２３とを備えている。さらに、この解析手段には、履歴管理用コメント解析部および前述した履歴管理用マクロ解析部での解析結果に基づいて機能し当該ソースコードと前述した保存管理手段３に保存されているソースコードとの差分を抽出すると共に履歴管理用のマクロデータ及びコメントでータと合わせて保存管理手段３に更新登録するソースコード差分獲得部２４が装備されている。
【００３２】
ここで、前述した解析手段のソースコード差分獲得部解析部２４は、前述した履歴管理用コメント解析部２３および履歴管理用マクロ解析部２２での解析結果に基づいて機能し当該履歴情報をソースコードから分離する履歴情報分離機能と、この履歴情報が分離されたソースコードと前述した保存管理手段３に保存されているソースコードとの差分を抽出する差分抽出機能と、この抽出された差分を前述した履歴管理用のマクロデータ及びコメントでータと合わせて差分情報として前述した保存管理手段３に更新登録する差分情報登録制御機能とを備えた構成となっている。又、保存管理手段３は、履歴情報保存部３１とソースコード保存部３１とを備えた構成となっている。
【００３３】
解析手段２の前述した字句解析部２１では、入力部１１からのソースコードを受け、字句解析してトークン列を作成する。トークンの例としては、識別子やキーワード、それに、空白、コメント等をも含む。又、履歴管理用マクロ解析部２２では、字句解析部２１からのトークン列を受けて作動し、履歴情報、特に差分を表すマクロのデータ構造を解析する。そして、マクロの構造がソースコードの履歴情報データ構造で記載されている場合、これを履歴管理用マクロデータとして作成する。
【００３４】
更に、履歴管理用コメント解析部２３では、字句解析部２１からのトークン列を受け、コメントトークンに注目する。注目したコメントトークンそれぞれについて、履歴情報データ構造用のコメントであるか否かを認識するために、コメントトークンを表す文字列をコメント解析用に字句解析し、更に構文解析する。そして、当該コメントが履歴情報用コメントのデータ構造であった場合は、これを履歴管理用コメントデータとして作成する。続いて、本データと前述した履歴管理マクロ解析部２２での履歴情報用マクロのデータとをつき合わせ、整合が取れているかを確認する。
【００３５】
又、前述した解析手段２のソースコード差分獲得部２４では、履歴管理用マクロ解析部２２、履歴管理用コメント解析部２３より、履歴情報用の部分であるトークン列を元のトークン列から削除する。得られたトークン列と、保存管理部３のソースコードとの差分を獲得し、差分が存在している時にはこれを履歴情報用マクロ及び履歴情報用コメントのデータ構造にあわせ、保存管理部３のデータを更新する。
【００３６】
前述した出力処理手段４は、具体的には履歴付有無出力判定部４１と履歴・ソースコードマージ部４２と出力部４３とを備えた構成となっている。この内、履歴付有無出力判定部４１では、入力装置１１から指示された出力形式に従い、出力形式を履歴・ソースコードマージ部４２に指示する。又、履歴・ソースコードマージ部４２では、履歴管理用のデータ構造とソースコードとを合成し、履歴付有無出力判定部４１より指示された形式に従ってコンパイル可能な形式でコメント，マクロによる履歴管理用データを埋め込んだ形でソースコードを出力する。ここで、符号５は出力されたソースコード等を表示する表示装置を示し、符号６は出力されたソースコード等の情報を登録する登録装置を示す。
【００３７】
〔解析手段２と出力処理手段４との連係動作〕
次に、本実施形態における主要部である解析手段２と出力処理手段４との連係動作について説明する。
【００３８】
まず、解析手段２の字句解析部２１では、入力部１１からのソースコードと、履歴付有無の入力判定部１２から入力条件を取得し、履歴管理用マクロ解析および履歴管理用コメント解析用に字句解析してトークン列へ変換する。履歴管理用マクロ解析部２２では得られたトークン列を入力として、マクロの構造を解析し、履歴管理用のマクロ構造データを作成する。履歴管理用コメント解析部２３では、得られたトークン列からコメントトークンが発見された時、コメントトークンを入力文字列として、履歴管理用のコメントであるか否かを判定する。
【００３９】
履歴管理用のコメントの場合には文字列内部をコメント解析用に字句解析し、履歴情報コメント認識するために構文解析し、履歴管理用のコメント構造データを作成する。履歴管理用のコメント構造データは履歴マクロ名と、その他履歴管理用の情報（日付・修正者・修正番号等）を含めることが可能であり、且つ省略可能なデータ構造を持たせる。ソースコード差分管理部では、入力ソースコードと現在ソースコード管理システム上に登録されているソースコードとの差分を抽出する。そして、この抽出結果と、入力部１１からの履歴情報（修正者名・修正番号）等を合わせて履歴情報として、ソースコードと合わせて保存管理部３へ保存する。
【００４０】
出力処理部４では、保存管理部３から取り出したソースコードとこれに対応する履歴情報のデータを読み出し、これをソースコード上のコメント・マクロに履歴情報を埋め込み、コンパイル可能な形式でソースコードを出力する。よって、ソースコード上に履歴情報を埋め込み可能であり、且つ、ソースコードはコンパイル可能な形式で出力できる。履歴情報は規定のデータ構造によって管理されるため、ソースコード表示のための支援ツールによる加工が容易になるなど、ソースコード上での履歴情報の視認性を向上できる。
【００４１】
〔全体的な動作：第１段階（変更履歴保存動作）〕
次に、上記第１実施例におけるソースコード管理システムの動作を二段階に分けて説明する。第１段階はソースコードを変更して保存処理部３に格納するまでの動作（変更履歴の管理）であり、第２段階は変更したソースコードを出力する動作である。
【００４２】
上記第１のユースケースでは、最初に、入力部１からソースコードを受け取る。入力されたソースコードは履歴情報付データ構造を持ったソースコードである場合とそうでない場合がある( 図２〜図４）。入力されたソースコードが履歴情報付データ構造を持ったソースコードであるか否かが入力部１１より受け取って最初に判断される。
【００４３】
入力されたソースコードが履歴情報付ではないと判断された場合、当該ソースコードの処理は図２のステップＳ７に飛ぶ。そして、ソースコード差分獲得部２４でソースコード管理システムからソースコード取り出して、入力されたソースコードとの差分を抽出する（図２のステップＳ７〜Ｓ８）。抽出した差分に対して、入力部１１より付加履歴情報（修正者名、修正番号など）を受け取り、コードの差分変更履歴と対応付けてソースコード管理システムのデータを更新する（図２のＳ９）。
【００４４】
一方、入力されたソースコードが履歴情報付データ構造を持ったソースコードの時、字句解析を行う( 図２のＳ１) 。字句解析から受け取ったトークン列を元に、履歴情報用マクロ解析部２３で解析を行う( 図２のＳ４) 。この解析は、入力された履歴情報付ソースコードが有効な形式に沿っているかを判定する目的と、ソースコード管理システム上での履歴情報の更新に利用するために行う。さらに、トークン列からコメントトークンに着目し、履歴管理用コメント解析部２２に履歴管理用コメントトークンを入力する。この場合、履歴管理用のコメントであるかそうでないかは、コメント内部の形式が履歴管理用データ構造に沿っているか否かにより判断する。
【００４５】
履歴管理用コメント解析部２２は、受け取ったコメントトークンを文字列としてコメント解析用に字句解析（図２のＳ２）・構文解析（図２のＳ３）し、履歴情報データ構造に沿っているかを確認し、沿っているときはそのデータ構造を獲得できる。沿っていないときは、そのコメントを通常のコメントとして認識しスキップさせる。得られた履歴情報用マクロデータと、履歴情報用コメントデータをあわせ、対応を判定し履歴情報データ構造を作成する（図２のＳ５）。履歴は、#if マクロのデファイン名と、コメント中のデータとして対応する履歴マクロのデファイン名を対応させる。
【００４６】
ソースコード差分獲得部２４では、前述した解析の結果を利用し、ソースコードの差分計算のため履歴情報をソースコードと分離する。履歴情報を記載したコメント、および、履歴情報用のマクロ構造を取り除く（図２のＳ６）。さらに差分の計算となるベースソースコード取得のため、保存部３のソースコード保存部３２から、現バージョンのソースコードを取得する（図２のＳ７）。獲得したソースコードと、入力部１１より受け取ったソースコードを差分計算する。差分は行単位の差分で取得する（図２のＳ８、図５のＳ５１）。この際、差分計算により得られる歴情情報はソースコードの履歴である。これに入力部１１より変更履歴データに付加する履歴情報（例えば、修正者名、修正日付、修正番号など）を受け取って対応付ける（図５、Ｓ５２）。獲得した差分情報は、保存部のソースコード保存部と、履歴情報保存部に更新登録する（図２のＳ９）。
【００４７】
これを更に具体的に説明する。ここで、現在保存中のソースコードを旧ソースコードとし、入力されたソースコードを新ソースコードとする（以下、同じ）。
【００４８】
図２は、前述した図１における出力部４３から入力部１１に入力された旧ソースコードを更新して保存部３に格納するまでの第１段階の動作を説明するためのフローチャートである。
【００４９】
まず、図２のステップＳ０において、入力部１１に入力されたソースコードが履歴付きソースコードであるか否かが判断される。図３に示すように、履歴情報付データ構造を持ったソースコードＢ１は、履歴情報コメントデータ構造（例えば、/** から*/までの５つの行）と履歴情報マクロデータ構造（例えば、#ifHIST、#else、#endifの３つの行）を含む。
【００５０】
一方、図４に示すように、履歴情報付データ構造を持たないソースコードＢ２は、図３に例示した履歴情報コメントデータ構造（例えば、/** から*/までの５つの行）と履歴情報マクロデータ構造（例えば、#ifHIST、#else、#endifの３つの行）を含まない。
【００５１】
この図２のステップＳ０において、入力部１１に入力された任意の（ユーザが指定する）旧ソースコードが履歴付きソースコードではないと判定されればステップＳ７に進んで、入力されたソースコードと対比すべき任意の新バージョンのソースコードをソースコード保存部３２から取りだし、両者の差分を差分獲得部２４（図１参照）により計算する（図２、Ｓ８）。この図２のステップＳ８に続いて、抽出した差分に対して、入力部１１より付加履歴情報（修正者名、修正番号等）を受け取り、コードの差分履歴と対応付けてソースコード保存部３２のデータを更新する（図２のＳ９）。
【００５２】
一方、図２のステップＳ０において、入力部１１に入力されたソースコードが履歴付きソースコードであると判定されれば、ステップＳ１に進んで、字句解析を行い、ステップＳ１に続いて、ステップＳ４及びステップＳ２が実行され、ステップＳ４において、字句解析部２１から受け取ったトークン列に基づいてマクロ構文解析が行なわれる。このマクロ構文解析は、入力された履歴情報付ソースコードが所定の形式に沿っているかを判定するためと、履歴情報の更新に利用するために行う。
【００５３】
又、図２のステップＳ４と同時に、ステップＳ２において、トークン列からコメントトークンに着目し、履歴管理用コメント解析部２２に履歴管理用コメントトークンを入力する。履歴管理用のコメントであるかそうでないかは、コメント内部の形式が所定の履歴管理用データ構造に沿っているか否かにより判断する。履歴管理用コメント解析部２２は、受け取ったコメントトークンを文字列としてコメント解析用に字句解析（図２のＳ２）・構文解析（図２のＳ３）し、履歴情報データ構造に沿っているかを確認し、沿っているときはそのデータ構造を獲得できる。沿っていないときは、そのコメントを通常のコメントとして認識しスキップさせる。
【００５４】
得られたソースコード上の履歴情報用マクロデータ及びコメントデータを併せ、保持部３中の履歴情報との対応の整合性を判定し、整合すれば履歴情報データ構造を作成する（図２のＳ５）。なお、履歴は、#if マクロのデファイン名と、コメント中のデータとして対応する履歴マクロのデファイン名を対応させる。
【００５５】
ソースコード差分獲得部２４では、上記解析の結果を利用し、ソースコードの差分計算のため履歴情報をソースコードと分離する。履歴情報を記載したコメント、および、履歴情報用のマクロ構造を取り除く（図２のＳ６）。さらに、差分の計算となるベースソースコード取得のため、保存管理部３のソースコード保存部３２から、新バージョンのソースコードを取得する（図２のＳ７）。そして、取得したソースコードと、入力部１１より受け取ったソースコードを差分計算する。ここで、差分は行単位の差分で取得する（図２のＳ８、図５のＳ５１）。図５に示す例では、入力ソースコード中のreturn 20/number" と現ソースコード中の" return 10/number" が差分である。
【００５６】
続いて、これに入力部１１より履歴データに付加する履歴情報（例えば、修正者名、修正日付、修正番号等）を受け取って対応付ける（図５のＳ５２）。そして、この獲得した差分情報は、保存管理部３のソースコード保存部３２と、履歴情報保存部３１に更新登録する（図２のＳ９）。
【００５７】
（ソースコード管理方法）
本実施形態における上述した変更履歴の保存動作は、実際上、以下に示すソースコード管理方法の手順に従って、順次実行されるようになっている。
【００５８】
即ち、上述したように、ソースコード管理方法として、更新登録用として入力されたソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う第１のステップと、この字句解析に基づいて当該履歴管理用のマクロ解析を行う第２のステップと、この第２のステップに並行して作動し前記第１ステップでの字句解析に基づいてコメント解析用に字句解析および構文解析を行う第３のステップと、この第３のステップでコメント内部の形式が履歴情報データに沿ったものである場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する第４のステップと、前記第１乃至第４の各ステップの結果に基づいて作動し履歴情報とソースコードとを分離する第５のステップと、この第５のステップで分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する第６のステップと、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する第７のステップと、この抽出した差分情報をソースコードの履歴として更新登録する第８のステップとを備えた構成を採用した。
【００５９】
ここで、前述した入力されたソースコードが履歴情報を備えていない場合に機能し、上記ソースコードを上述した第１ステップ乃至第５ステップを越えて第６ステップの分離されたソースコードと同等に扱うように構成してもよい。
【００６０】
このようにすると、前述した請求項１乃至２記載のソースコード管理システムと同等の効果を得ることができ、ソースコード管理システムをより有効に実施することが可能となる。
【００６１】
（ソースコード管理プログラム）
上述したソースコード管理手法については、コンピュータ上では、以下の示すソースコード管理プログラムに従って実行されるようになっている。
【００６２】
即ち、ソースコードの履歴をソースコードと共に出力可能に更新するために、コンピュータを、更新登録用として入力されたソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、ソースコードが履歴情報を備えている場合に機能し当該ソースコードの字句解析を行う字句解析機能と、この字句解析の結果に基づいて当該履歴管理用のマクロ解析を行うマクロ解析機能と、前述したソースコードの字句解析機能に基づいてコメント解析用に字句解析および構文解析を行う構文解析機能と、この構文解析によってコメント内部の形式が履歴情報データに沿ったものであるとなった場合に機能し履歴情報用のマクロデータと履歴情報用のコメントデータとを合わせて履歴情報用データを作成する履歴情報用データ作成機能と、これらの各機能の実行結果に基づいて作動し履歴情報とソースコードとを分離する履歴情報分離機能と、この分離されたソースコードと保存中の現バージョンのソースコードとの差分を抽出する差分抽出機能と、この抽出された差分情報に必要に応じて修正日付等の所定の履歴情報を付加する履歴情報付加機能と、この抽出した差分情報をソースコードの履歴として更新登録する履歴更新登録機能とを実現させるようにした。
【００６３】
このため、これによると、前述した請求項４記載のソースコード管理システムと同等の効果を奏する管理プログラムを得ることができる。
【００６４】
〔全体的な動作：第２段階（変更したソースコードの出力動作）〕
次に、図６に基づいて、旧バージョンを更新した新バージョンのソースコードと履歴情報とを出力部４から出力する第２段階の動作について説明する。
【００６５】
上記ソースコード管理システムは、まず、入力部１１から指定されたバージョンのソースコードを出力する。又出力処理手段４からの出力は、履歴情報をソースコード上のコメント・マクロに含めた形式で出力される場合と、履歴情報を含めないソースコードで出力される場合がある。履歴情報を含めない場合は、ソースコード保存部３２からソースコードを取り出し、これを出力する（図６のＳ６２Ａ）。履歴情報をソースコード上のコメント・マクロに埋め込んだ出力形式の場合、履歴情報保存部から履歴情報データを取得する( 図６のＳ６１）。次にソースコード保存部３２からソースコードを取り出し（図６のＳ６２Ｂ）、履歴情報データをソースコード上にコメント・マクロとして埋め込む処理を行う（図６のＳ６３，図７）。
【００６６】
このとき、履歴情報データは差分を行単位で保存しており、もし追加、変更、削除が連続するとき、これらをブロック化し一つの修正とする。この場合、履歴毎の修正ブロックが、複数のブロックにまたがる時、マクロの構造が木構造に保てなくなり、#if 構文で記述できない場合がある（図９）。その場合は、修正したいブロックが以前のどのブロックにまたがっているかを木構造を辿り判定し、またがったブロック毎の共通の親接点を探し出し、親接点からみて差分が発見された直接の子ノード列を括り出す。くくりだされた子ノード列は以前に登録された履歴ブロックを解除し、再度、行単位のノードとして修正分を差分ブロックとして履歴情報マクロ出力する（図１０）。この形式は前記の履歴情報用マクロ解析部の認識可能なデータ構造で、且つ、履歴情報用コメント解析部の認識可能なデータ構造である（図８）。
【００６７】
これを更に具体的に説明する。
出力部４３は、新バージョンのソースコードを出力するが、出力は履歴情報をソースコード上のコメント・マクロに含めた形式で出力される場合と、履歴情報を含めないソースコードで出力される場合がある。
【００６８】
履歴情報を含めない場合（図６：判定ステップＳ６０でノーである場合）は、ソースコード保存部３２からユーザが指定した新ソースコードを取得し（ステップＳ６２）、履歴情報を新ソースコードに埋め込んで（ステップＳ６３）、出力部４３から出力する。一方、履歴情報をソースコード上のコメント・マクロに埋め込んだ出力形式の場合（判定ステップＳ６０でイエスである場合）、履歴情報保存部３１から履歴情報データを取得する(図６のＳ６１）。
【００６９】
次に、ソースコード保存部３２から新ソースコードを取り出し（図６のＳ６２）、履歴情報データを新ソースコード上にコメント及びマクロ命令として埋め込む処理を行う（図６のＳ６３、図７）。図７に示す例では、入力されたソースコードＸ上に、入力された旧ソースコードの履歴情報Ｙ１と新ソースコードの履歴情報Ｙ２が埋め込まれる。
【００７０】
図８は、図７に示した埋め込み処理を行なった結果の出力例Ｚである。図７に示した履歴情報Ｙ１中の＠３、＠４は、図８に示すように、出力例Ｚ中では、それぞれ"if(number==0)", "return 0;"である。また、図７に示した履歴情報Ｙ２中の＠５は、図８に示すように、出力例Ｚ中では、"return
20/number"である。このように、出力例Ｚは、履歴情報用マクロ解析部の認識可能なデータ構造で、且つ、履歴情報用コメント解析部の認識可能なデータ構造である。
【００７１】
尚、参考のため履歴情報無しのソースコード出力例Ｗも示した。
このとき、履歴情報データは差分を行単位で保存しており、もし、追加、変更、削除が連続するとき、これらをブロック化し一つの修正とする。この場合、履歴毎の修正ブロックが、複数のブロックにまたがる時、マクロの構造が木構造に保てなくなり、#if 構文で記述できない場合がある（図９）。
【００７２】
この図９に例示するように、履歴情報１が２行の文（"if(number==0"と"return 0; "）を追加するものであり、履歴情報２が当該追加部分と"number
++" とを削除するものであり、  当該追加部分と"number ++" とが#endifを挟んで２つのブロックにまたがる場合は、#if
項文で記述できない。
【００７３】
その場合は、修正したいブロックが以前のどのブロックにまたがっているかを木構造を辿り判定し、またがったブロック毎の共通の親接点を探し出し、親接点からみて差分が発見された直接の子ノード列を括り出す。くくりだされた子ノード列は以前に登録された履歴ブロックを解除し、再度、行単位のノードとして修正分を差分ブロックとして履歴情報マクロ出力する（図１０）。
【００７４】
（ソースコード管理方法）
本実施形態における変更したソースコードの出力動作は、実際上、以下に示すソースコード管理方法の手順に従って、順次実行されるようになっている。
【００７５】
即ち、上述したように、ソースコード管理方法として、出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する第１の工程と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す第２に工程と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う第３の工程と、この第３の工程で処理されたソースコードを出力する第４の工程とを備えた構成とした。このようにすると、前述したソースコードを履歴情報と共に円滑に且つ確実に取り出すことができるという利点がある。
【００７６】
（ソースコード管理プログラム）
更に、上述したソースコード管理手法については、コンピュータ上では、以下の示すソースコード管理プログラムに従って実行されるようになっている。
【００７７】
即ち、本実施形態にかかるソースコード管理プログラムでは、ソースコードの履歴をソースコードと共に出力させるために、コンピュータを、出力用として指定された所定バージョンのソースコードが履歴情報を備えているか否かを判断する履歴情報判断機能と、指定されたソースコードが履歴情報を備えている場合に作動し保存されている当該指定されたソースコードとこれに対応する履歴情報とを取り出す保存情報取り出し機能と、この取り出された履歴情報をソースコード上にコンパイル可能な形式でコメント・マクロとして埋め込む処理を行う履歴情報マージ機能と、この履歴情報がマージされたソースコードを出力するソースコード出力機能とを実現させるようにした。このため、これによると、前述したソースコード管理システムと同等の出力機能を備えたソースコード管理プログラムを得ることができる。
【００７８】
〔上記第実施形態の効果〕
本第実施形態では、上述したように、例えば履歴情報が一定の書式に従ったデータ構造でコメントやマクロに埋め込まれるため、複雑な解析を行なうことなく履歴情報とソースコードとの分離ができるため、ソースコードの表示ツールとして強調表示などの加工を容易に成し得るという利点がある。又、解析手段に有する構文解析手段の機能によってソースコード上からのコメント・マクロの解析が可能となり、これがため、ソースコードと当該管理システムで履歴情報を相互に変換できるという利点がある。更に差分計算に際しては、差分抽出機能が有効に作動して履歴情報が分離されたソースコードと前述した保存管理手段に保存されているソースコードとの差分を抽出するようにしたので、履歴情報を的確に分離捕捉することができるという利点がある。
【００７９】
即ち、本実施形態では、以下の効果を奏する。
（１）．特別な処理無くソースコード管理システムから取り出した履歴情報付ソースコードをコンパイル可能な点である。その理由は、コメントとマクロに履歴情報を出力することで、コンパイル時に履歴となる部分がコンパイルされないためである。
（２）．ソースコード上で履歴情報を確認できるだけでなく、ソースコード上での履歴情報の視認性が向上する点、ソースコードの表示ツールとして強調表示などの加工が容易となる点がある。その理由は一定の書式に従ったデータ構造で履歴情報をコメントやマクロに埋め込むため、複雑な解析を行わずとも履歴情報とソースコードの分離ができるためである。
（３）．履歴情報をソースコードとソースコード管理システムで相互に変換できる点である。その理由は、ソースコード管理システムで持つ履歴情報をソースコード上にもれなく埋め込み可能で、且つ、ソースコード上からのコメント・マクロを解析可能な構文解析部を備えているためである。
【００８０】
このように、本実施形態によると、前述した従来例で生じていた、ソースコードの取り出し時に履歴情報が失われてしまう、という不都合を、上述したように確実に改善することができ、更に履歴管理システムとは別にコメントやマクロに記載された履歴情報は一貫性が無く履歴管理システムとの不整合が起きる、という不都合を、上述したように確実に改善することができるという従来にない優れた効果を得ることができる。
【００８１】
ここで、上述した実施形態において、出力時に履歴情報マクロの#if の構造にあわせインデントをそろえて出力してもよい。このようにすると、ソースコード単体での視認性が向上する。
【００８２】
又、マクロでの履歴情報管理でなく、ファイル毎にコメント部に対してDiff形式の出力を記載しておいてもよい。この場合、コメント内部を解析してDiffから以前の履歴を復元可能である。
【００８３】
更に、ソースコードの差分を行単位で取り、これをブロック化せず全て行単位で履歴情報マクロとして出力してもよい。この場合は、マクロの構造を複雑に解析する必要が無いが、ソースコード単体での視認性については多少見通しが良くないと考えられる。反面、履歴情報マクロの構造は単純になるため、ソースコードを加工して履歴情報を取り出すツールの作成が容易になる。
【００８４】
又、行単位でなく、プログラム言語の構文要素での差分をとることで代用しても良い。その場合、ソースコード管理システムへの入力にソースコードを構文解析可能なだけのマクロのデファイン値が必要である。プログラム言語の構文要素を単位として差分をとることで、出力時にもソースコードの視認性が向上する。
【００８５】
以上のように、本発明によれば、履歴情報とともに、ソースコードを取り出すことができる。また、履歴管理システムの内部で管理される履歴情報と修正されたソースコード内のコメントに記載された履歴情報を整合させることができる。また、専用の表示ツールを使用することなく、修正履歴とソースコードを表示することができる。
【産業上の利用可能性】
【００８６】
本発明は、コンピュータ、コンピュータプログラミングの作成・変更に利用することができる。
【図面の簡単な説明】
【００８７】
【図１】本発明の一実施形態におけるソースコード管理システムを示すブロック図である。
【図２】図１において、履歴情報とソースコードを分離して保存する場合の処理を示すフローチャートである。
【図３】履歴情報付きソースコードの例を示す説明図である。
【図４】履歴情報無しのソースコードの例を示す説明図である。
【図５】入力装置からの履歴情報付加データとソースコード差分を対応させる処理の例を示すフローチャートである。
【図６】履歴情報をソースコードに埋め込む場合の処理を示すフローチャートである。
【図７】図６の処理状態を図示した説明図である。
【図８】履歴情報付きソースコードの出力例を示す説明図である。
【図９】履歴毎の修正が複数のブロックにまたがる場合の例を示す説明図である。
【図１０】履歴毎の修正が複数のブロックにまたがる場合の修正方法の一例を示す説明図である。
【符号の説明】
【００８８】
１  入力手段
２  解析手段
３  保存管理手段
４  出力処理手段
５  表示装置
６  登録装置
１１  入力部
１２  履歴付有無入力判定部
２１  字句解析部
２２  履歴管理用マクロ解析部
２３  履歴管理用コメント解析部
３１  履歴情報保存部
３２  ソースコード保存部
４１  履歴付有無出力判定部
４２  履歴・ソースコードマージ部
４３  出力部
【図１】
2006268777.tif 000003
【図２】
2006268777.tif 000004
【図３】
2006268777.tif 000005
【図４】
2006268777.tif 000006
【図５】
2006268777.tif 000007
【図６】
2006268777.tif 000008
【図７】
2006268777.tif 000009
【図８】
2006268777.tif 000010
【図９】
2006268777.tif 000011
【図１０】
2006268777.tif 000012