(57)【特許請求の範囲】
【請求項１】
ソースコードへのリンク情報及びバージョン情報を含む複数の変更履歴データのうちから、当該ソースコード中の変更内容を探索するための、コンピュータに実装される方法であって、
前記複数の変更履歴データのうちから、ユーザによって特定された機能単位（以下、第１の機能単位という）を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第１の変更履歴データという）の一覧（以下、第１の一覧という）を表示装置上に表示するステップであって、前記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示すること、前記少なくとも２つの異なる変更履歴データそれぞれは異なるバージョン番号を有し、並びに、下記（１）又は（２）を実行すること
（１）１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報の表示を前記表示装置上で固定し、残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報を前記バージョン情報の順に又は当該変更履歴データの作成日の順に従って前記表示装置上に表示すること、又は、
（２）１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報と残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報とを、前記バージョン情報の順に又は当該変更履歴データの作成日の順に従って前記表示装置上に表示すること
をさらに含む、前記表示するステップ
を含み、
前記変更履歴データが、当該変更履歴データの作成日付、ソースコードを変更したユーザ、及び、当該ユーザによって付与されたコメントを含み、
前記第１の機能単位が、変数、関数、マクロ定義、メソッド、サブルーチン、又は、構造化文書のタグ構造である、
前記方法。
【請求項２】
ソースコードへのリンク情報及びバージョン情報を含む複数の変更履歴データのうちから、当該ソースコード中の変更内容を探索するための、コンピュータに実装される方法であって、
前記複数の変更履歴データのうちから、ユーザによって特定された機能単位（以下、第１の機能単位という）を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第１の変更履歴データという）の一覧（以下、第１の一覧という）を記憶領域内に作成するステップと、
前記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を表示装置上に表示するステップであって、前記少なくとも２つの異なる変更履歴データそれぞれは異なるバージョン番号を有し、並びに、下記（１）又は（２）を実行すること
（１）１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報の表示を前記表示装置上で固定し、残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報を前記バージョン情報の順に又は当該変更履歴データの作成日の順に従って前記表示装置上に表示すること、又は、
（２）１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報と残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報とを、前記バージョン情報の順に又は当該変更履歴データの作成日の順に従って前記表示装置上に表示すること
を含み、
前記変更履歴データが、当該変更履歴データの作成日付、ソースコードを変更したユーザ、及び、当該ユーザによって付与されたコメントを含み、
前記第１の機能単位が、変数、関数、マクロ定義、メソッド、サブルーチン、又は、構造化文書のタグ構造である、
前記方法。
【請求項３】
前記第１の機能単位と異なる機能単位（以下、第２の機能単位という）がユーザから指定されることに応じて、
前記第１の変更履歴データのうちから、前記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第２の変更履歴データという）の一覧（以下、第２の一覧という）を前記表示装置上に表示するステップ、又は、
前記複数の変更履歴データのうちから、前記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第３の変更履歴データという）と前記第１の変更履歴データを組み合わせて、当該組み合わせた変更履歴データの一覧（以下、第３の一覧という）を前記表示装置上に表示するステップ
をさらに含む、請求項１又は２のいずれか一項に記載の方法。
【請求項４】
前記第２の一覧を表示するステップが、前記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示するステップをさらに含み、又は、
前記第３の一覧を表示するステップが、前記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示するステップをさらに含む、
請求項３に記載の方法。
【請求項５】
前記第１の機能単位と異なる機能単位（以下、第２の機能単位という）がユーザから指定されることに応じて、
前記第１の変更履歴データのうちから、前記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第２の変更履歴データという）の一覧（以下、第２の一覧という）を記憶領域内に作成し、当該第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示するステップ、又は、
前記複数の変更履歴データのうちから、前記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第３の変更履歴データという）と前記第１の変更履歴データを組み合わせて、当該組み合わせた変更履歴データの一覧（以下、第３の一覧という）を記憶領域内に作成し、当該第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示するステップ
をさらに含む、請求項１又は２に記載の方法。
【請求項６】
前記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示するステップ、又は、前記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示するステップが、
１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報の表示を前記表示装置上で固定し、残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報を前記バージョン情報の順又は当該変更履歴データの作成日の順に従って前記表示装置上に表示することを可能にするステップ、又は、
１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報と残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報とを、前記バージョン情報の順に又は当該変更履歴データの作成日の順に従って前記表示装置上に表示することを可能にするステップ
を含む、
請求項４又は５に記載の方法。
【請求項７】
前記第２の機能単位のユーザからの前記指定が、前記第２の機能単位が前記第１の機能単位と別の名前であるという指定であり、
前記第２の機能単位が前記第１の機能単位と別の名前であるという前記指定に応じて、前記第３の一覧を前記表示装置上に表示するステップが実行される、請求項３又は４に記載の方法。
【請求項８】
前記第２の機能単位のユーザからの前記指定が、前記第２の機能単位が前記第１の機能単位と別の名前であるという指定であり、
前記第２の機能単位が前記第１の機能単位と別の名前であるという前記指定に応じて、前記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示するステップが実行される、
請求項５に記載の方法。
【請求項９】
前記第２の一覧を表示するステップを少なくとも２以上、前記第３の一覧を表示するステップを少なくとも２以上、又は、前記第２の一覧を表示するステップの少なくとも１以上及び前記第３の一覧を表示するステップの少なくとも１以上、を実行するステップをさらに含む、請求項３に記載の方法。
【請求項１０】
前記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコードを表示するステップ、前記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応する前記ソースコードに関連付けられた情報を表示するステップ、前記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコードを表示するステップ、及び、前記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応する前記ソースコードに関連付けられた情報を表示するステップから選択される少なくとも２つの同一の又は異なるステップを組み合わせて実行するステップをさらに含む、請求項５に記載の方法。
【請求項１１】
ソースコードへのリンク情報及びバージョン情報を含む複数の変更履歴データのうちから、当該ソースコード中の変更内容を探索するためのコンピュータであって、
前記複数の変更履歴データのうちから、ユーザによって特定された機能単位（以下、第１の機能単位という）を含む変更履歴データを抽出する抽出手段と、
前記抽出された変更履歴データ（以下、第１の変更履歴データという）の一覧（以下、第１の一覧という）を表示装置上に表示する表示制御手段であって、前記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示し、前記少なくとも２つの異なる変更履歴データそれぞれは異なるバージョン番号を有し、並びに、下記（１）又は（２）を実行する前記表示制御手段と
を備えており、
（１）１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報の表示を前記表示装置上で固定し、残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報を前記バージョン情報の順に又は当該変更履歴データの作成日の順に従って前記表示装置上に表示すること、又は、
（２）１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報と残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報とを、前記バージョン情報の順に又は当該変更履歴データの作成日の順に従って前記表示装置上に表示すること
前記変更履歴データが、当該変更履歴データの作成日付、ソースコードを変更したユーザ、及び、当該ユーザによって付与されたコメントを含み、
前記第１の機能単位が、変数、関数、マクロ定義、メソッド、サブルーチン、又は、構造化文書のタグ構造である、
前記コンピュータ。
【請求項１２】
ソースコードへのリンク情報及びバージョン情報を含む複数の変更履歴データのうちから、当該ソースコード中の変更内容を探索するためのコンピュータであって、
前記複数の変更履歴データのうちから、ユーザによって特定された機能単位（以下、第１の機能単位という）を含む変更履歴データを抽出する抽出手段と、
前記抽出された変更履歴データ（以下、第１の変更履歴データという）の一覧（以下、第１の一覧という）を記憶する記憶手段と、
前記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を表示装置上に表示する表示制御手段であって、前記少なくとも２つの異なる変更履歴データそれぞれは異なるバージョン番号を有し、並びに、下記（１）又は（２）を実行する
（１）１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報の表示を前記表示装置上で固定し、残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報を前記バージョン情報の順に又は当該変更履歴データの作成日の順に従って前記表示装置上に表示すること、又は、
（２）１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報と残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報とを、前記バージョン情報の順に又は当該変更履歴データの作成日の順に従って前記表示装置上に表示すること
前記表示制御手段と
を備えており、
前記変更履歴データが、当該変更履歴データの作成日付、ソースコードを変更したユーザ、及び、当該ユーザによって付与されたコメントを含み、
前記第１の機能単位が、変数、関数、マクロ定義、メソッド、サブルーチン、又は、構造化文書のタグ構造である、
前記コンピュータ。
【請求項１３】
前記表示制御手段がさらに、前記第１の機能単位と異なる機能単位（以下、第２の機能単位という）がユーザから指定されることに応じて、
前記第１の変更履歴データのうちから、前記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第２の変更履歴データという）の一覧（以下、第２の一覧という）を前記表示装置上に表示し、又は、
前記複数の変更履歴データのうちから、前記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第３の変更履歴データという）と前記第１の変更履歴データを組み合わせて、当該組み合わせた変更履歴データの一覧（以下、第３の一覧という）を前記表示装置上に表示する、請求項１１又は１２に記載のコンピュータ。
【請求項１４】
前記第２の一覧を表示することが、前記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示することをさらに含み、又は、
前記第３の一覧を表示することが、前記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示することをさらに含む、
請求項１３に記載のコンピュータ。
【請求項１５】
前記表示制御手段がさらに、前記第１の機能単位と異なる機能単位（以下、第２の機能単位という）がユーザから指定されることに応じて、
前記第１の変更履歴データのうちから、前記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第２の変更履歴データという）の一覧（以下、第２の一覧という）を記憶領域内に作成し、当該第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示し、又は、
前記複数の変更履歴データのうちから、前記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第３の変更履歴データという）と前記第１の変更履歴データを組み合わせて、当該組み合わせた変更履歴データの一覧（以下、第３の一覧という）を記憶領域内に作成し、当該第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示する、
請求項１１又は１２に記載のコンピュータ。
【請求項１６】
前記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示すること、又は、前記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示することが、
１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報の表示を前記表示装置上で固定し、残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報を前記バージョン情報の順又は当該変更履歴データの作成日の順に従って前記表示装置上に表示することを可能にすること、又は、
１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報と残りの変更履歴データに対応するソースコード又は当該ソースコードに対応付けられた情報とを、前記バージョン情報の順に又は当該変更履歴データの作成日の順に従って前記表示装置上に表示することを可能にすること
を含む、
請求項１４又は１５に記載のコンピュータ。
【請求項１７】
前記第２の機能単位のユーザからの前記指定が、前記第２の機能単位が前記第１の機能単位と別の名前であるという指定であり、
前記第２の機能単位が前記第１の機能単位と別の名前であるという前記指定に応じて、前記第３の一覧を前記表示装置上に表示することが実行される、請求項１３又は１４に記載のコンピュータ。
【請求項１８】
前記第２の機能単位のユーザからの前記指定が、前記第２の機能単位が前記第１の機能単位と別の名前であるという指定であり、
前記第２の機能単位が前記第１の機能単位と別の名前であるという前記指定に応じて、前記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を前記表示装置上に表示することが実行される、
請求項１５に記載のコンピュータ。
【請求項１９】
ソースコードへのリンク情報及びバージョン情報を含む複数の変更履歴データのうちから、当該ソースコード中の変更内容を探索するためのコンピュータであって、
前記変更履歴データを記憶する記憶手段と、
メモリと、
前記メモリに接続されたＣＰＵと
を備えており、
前記ＣＰＵは、前記メモリに、前記変更履歴データと、前記ＣＰＵに請求項１〜１０のいずれか一項に記載の方法の各ステップを実行させるコンピュータ・プログラムとを読み込む、前記コンピュータ。
【請求項２０】
ソースコードへのリンク情報及びバージョン情報を含む複数の変更履歴データのうちから、当該ソースコード中の変更内容を探索するためのコンピュータ・プログラムであって、コンピュータに請求項１〜１０のいずれか一項に記載の方法の各ステップを実行させる前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の変更履歴データのうちからソースコード中の変更内容を探索するための技法に関する。より詳細には、本発明は、ソースコードへのリンク情報及びバージョン情報を含む複数の変更履歴データのうちから、当該ソースコード中の変更内容を探索するための方法、並びに、その装置、コンピュータ・プログラム及びコンピュータ・プログラム製品に関する。
【背景技術】
【０００２】
ソフトウェア開発において問題が検出された場合に、何時その問題が混入されてしまったのか、またどのようなコード変更によってその問題が生じたのか、そして当該問題が混入された以降においてどのようなコード変更が行われたのかなどの全体的な推移を把握しなければならない。しかしながら、変更履歴が増大するにつれて、変更管理ツールを使用してその変更履歴の調査をするには時間がかかり、また問題解決の効率が悪化してしまう場合が多い。
【０００３】
問題解決の効率悪化の原因としては、例えば、以下の理由が考えられる。
（１）変更履歴のコミットログを検索することはできる。しかしながら、当該コミットログ中に目的としている特定のメソッド又はコードが記述されているとは限らない。そこで、目的としている特定のメソッド又はコードを探すためには、コードの変更内容を見なければならない。
（２）コードの変更内容の履歴は、ファイル単位で管理されている。そのために、目的としている特定のメソッド又はコードが、ある変更セットに含まれているかどうかは変更セットの各ファイルを開くまで確認できず、変更内容の履歴の全てを確認する必要がある。
【０００４】
下記特許文献１は、プログラムファイルを相互に比較して、その変更履歴を版数管理する方法を記載し、当該方法は、プログラムファイルの修正のつど、修正前と修正後との差分を取り出し、取り出した差分を追加行、削除行、変換行に区分けし、それぞれの位置と行数の差分を変更履歴情報として管理する変更履歴管理テーブルファイルを新規作成または更新し、この変更履歴情報である変更履歴管理テーブルファイルを検索し、任意の指定版数の範囲内に蓄積した行の差分を割り出し、指定プログラムファイルに対する全ての行の変更履歴情報を取り出すことを特徴とする（請求項１）。
【０００５】
下記特許文献２は、オブジェクトを表す少なくとも１つの葉ノード及び少なくとも１つの非葉ノードを含むツリー構造内でナビゲートする方法及びシステムを記載する（特許請求の範囲）。
【０００６】
下記特許文献３は、開発対象プログラムを構成するソースファイルを登録し、登録されたソースファイルに対する編集処理についての排他制御を行うとともに、編集されたソースファイルの変更履歴管理を行うソースファイルバージョン管理システムを記載し、当該ソースファイルバージョン管理システムは、前記ソースファイルのプログラム言語に応じてソースファイルを解析し、当該ソースファイルをメソッド以外の共通情報とメソッド単位とのソースコードファイルに分割したメソッドファイルを生成して、当該メソッドファイルを前記排他制御及び変更履歴管理の対象として登録するソースファイル分割登録手段を備えることを特徴とする（請求項１）。
【０００７】
下記特許文献４は、オブジェクト指向言語で記述された対象プログラムを解析する装置を記載し、当該装置は、前記対象プログラムを１ステップずつ実行するステップ実行部と、前記ステップ実行部による前記対象プログラムの実行結果に基づき、１ステップごとに、オブジェクトのフィールドの変更履歴とその変更の原因となったオブジェクトのフィールドの情報を取得して、各オブジェクトの状態単位での因果関係を抽出する抽象解釈部とを備えることを特徴とする（請求項１）。
【０００８】
下記特許文献５は、階層に構成された大量の情報を効率的にコピーおよび共有する方法を記載し、当該方法は、階層に含まれる複数の項目の各々に対して行われたすべての変更を標示する改訂版履歴を各項目毎に作成し、階層が複数のバージョンによって共有されるようにするため新しいリンクを階層のルートに追加することによって複数の項目を有する階層の仮想コピーを作成するステップと、階層が既に非共有化されてない場合階層のルートまで階層をコピーすることによって階層を非共有化するステップと、修正される各項目毎にその項目の修正を反映するようにその項目の改訂版履歴を更新することを通して、非共有化された階層の複数の項目のうちの１つまたは複数の項目を修正するステップとを含む（請求項１）。
【０００９】
下記特許文献６は、ソフトウェアのソースコードの指定行における変更に関連する要件・バグレポートを検索して出力装置に出力する要件・バグレポート処理システムを記載する（請求項１）。
【００１０】
下記特許文献７は、アプリケーションのソースコードを解析してアプリケーションの改善を支援する情報を提供するアプリケーション改善支援プログラムを記載する（請求項１）。
【００１１】
下記特許文献８は、リエンジニアリング、リバースエンジニアリングの分野において、ソースプログラムからプログラム仕様書を作成する技術を記載する（段落０００１）。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平５−１０８４３７号公報
【特許文献２】特開２０００−１９４４６６号公報
【特許文献３】特開２００６−２７７４３５号公報
【特許文献４】特開２００６−１８５２１１号公報
【特許文献５】特開平１１−１４３７５５号公報
【特許文献６】特開２０１１−１７５４４６号公報
【特許文献７】国際公開２００９／０１１０５６号
【特許文献８】特開２００２−３６６３５４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明は、特定のファイルについての複数の変更履歴データのうちからソースコード中の変更内容をユーザが探索することを容易にすることを目的とする。また、本発明は、特定のファイルについての複数の変更履歴データのうちからソースコード中の変更内容を探索することを効率化することを目的とする。さらに、本発明は、特定のファイルについての複数の変更履歴データのうちからソースコード中の変更内容の探索のための表示方法を改善することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、特定のファイルについての複数の変更履歴データのうちから、ユーザによって特定された機能単位を含む変更履歴データを抽出することを特徴とする。
【００１５】
第１に、本発明は、ソースコードへのリンク情報及びバージョン情報を含む複数の変更履歴データのうちから、当該ソースコード中の変更内容を探索するための方法を提供する。当該方法は、上記複数の変更履歴データのうちから、ユーザによって特定された機能単位（以下、第１の機能単位ともいう）を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第１の変更履歴データともいう）の一覧（以下、第１の一覧ともいう）を表示装置上に表示すること又は記憶領域内に作成するステップを含む。また、本発明は、上記方法が、上記第１の変更履歴データの一覧を記憶領域内に作成する場合に、上記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップを含む。
【００１６】
本発明の一つの実施態様において、上記第１の一覧を表示するステップは、上記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップをさらに含みうる。
【００１７】
本発明の一つの実施態様において、上記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップが、１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報の表示を固定し、残りの変更履歴データを上記バージョン情報の順に又は当該変更履歴データの作成日の順に従って表示することを可能にするステップを含みうる。また、本発明の一つの実施態様において、上記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップが、１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報と残りの変更履歴データとを、上記バージョン情報の順に又は当該変更履歴データの作成日の順に従って表示することを可能にするステップを含みうる。
【００１８】
本発明の一つの実施態様において、上記方法は、上記第１の機能単位と異なる機能単位（以下、第２の機能単位ともいう）がユーザから指定されることに応じて、上記第１の変更履歴データのうちから、上記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第２の変更履歴データともいう）の一覧（以下、第２の一覧ともいう）を上記表示装置上に表示するステップをさらに含みうる。また、本発明の一つの実施態様において、上記方法は、上記第１の機能単位と異なる機能単位（第２の機能単位）がユーザから指定されることに応じて、上記複数の変更履歴データのうちから、上記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（以下、第３の変更履歴データともいう）と上記第１の変更履歴データを組み合わせて、当該組み合わせた変更履歴データの一覧（以下、第３の一覧ともいう）を上記表示装置上に表示するステップをさらに含みうる。また、本発明の一つの実施態様において、上記方法は、上記第２の一覧を表示するステップを少なくとも２以上、上記第３の一覧を表示するステップを少なくとも２以上、又は、上記第２の一覧を表示するステップの少なくとも１以上及び上記第３の一覧を表示するステップの少なくとも１以上、を実行するステップをさらに含みうる。
【００１９】
本発明の一つの実施態様において、上記第２の一覧を表示するステップが、上記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップをさらに含みうる。また、本発明の一つの実施態様において、上記第３の一覧を表示するステップが、上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップをさらに含みうる。
【００２０】
本発明の一つの実施態様において、上記方法は、上記第１の機能単位と異なる機能単位（第２の機能単位）がユーザから指定されることに応じて、上記第１の変更履歴データのうちから、上記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（第２の変更履歴データ）の一覧（第２の一覧）を記憶領域内に作成し、当該第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップをさらに含みうる。また、本発明の一つの実施態様において、上記方法は、上記第１の機能単位と異なる機能単位（第２の機能単位）がユーザから指定されることに応じて、上記複数の変更履歴データのうちから、上記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（第３の変更履歴データ）と上記第１の変更履歴データを組み合わせて、当該組み合わせた変更履歴データの一覧（第３の一覧）を記憶領域内に作成し、当該第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップをさらに含みうる。本発明の一つの実施態様において、上記方法は、上記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコードを表示するステップ、上記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応する上記ソースコードに関連付けられた情報を表示するステップ、上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコードを表示するステップ、及び、上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応する上記ソースコードに関連付けられた情報を表示するステップから選択される少なくとも２つの同一の又は異なるステップを組み合わせて実行するステップをさらに含みうる。
【００２１】
本発明の一つの実施態様において、上記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップ、又は、上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップが、１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報の表示を固定し、残りの変更履歴データを上記バージョン情報の順又は当該変更履歴データの作成日の順に従って表示することを可能にするステップを含みうる。また、本発明の一つの実施態様において、上記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップ、又は、上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップが、１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報と残りの変更履歴データとを、上記バージョン情報の順に又は当該変更履歴データの作成日の順に従って表示することを可能にするステップを含みうる。
【００２２】
本発明の一つの実施態様において、上記第２の機能単位のユーザからの上記指定が、上記第２の機能単位が上記第１の機能単位と別の名前であるという指定であり、上記第２の機能単位が上記第１の機能単位と別の名前であるという上記指定に応じて、上記第３の一覧を上記表示装置上に表示するステップが実行されうる。
【００２３】
本発明の一つの実施態様において、上記第２の機能単位のユーザからの上記指定が、上記第２の機能単位が上記第１の機能単位と別の名前であるという指定であり、上記第２の機能単位が上記第１の機能単位と別の名前であるという上記指定に応じて、上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップが実行されうる。
【００２４】
本発明の一つの実施態様において、上記方法は、上記変更履歴データのバージョン情報の範囲を指定するステップをさらに含みうる。
【００２５】
本発明の一つの実施態様において、上記変更履歴データが、当該変更履歴データの作成日付、ソースコードを変更したユーザ、及び、ユーザによって付与されたコメントから選択される少なくとも１つをさらに含みうる。
【００２６】
本発明の一つの実施態様において、上記機能単位は、ソースコード中で分割できうる構造単位であればよく、例えば、変数、関数、マクロ定義、メソッド、サブルーチン、又は、構造化文書のタグ構造でありうるがこれらに限定されるものではない。
【００２７】
第２に、本発明は、ソースコードへのリンク情報及びバージョン情報を含む複数の変更履歴データのうちから、当該ソースコード中の変更内容を探索するためのコンピュータを提供する。
【００２８】
本発明の一つの実施態様において、第１のコンピュータは、
上記複数の変更履歴データのうちから、ユーザによって特定された機能単位（第１の機能単位）を含む変更履歴データを抽出する抽出手段と、
上記抽出された変更履歴データ（第１の変更履歴データ）の一覧（第１の一覧）を表示装置上に表示する表示制御手段と
を備えている。本発明の一つの実施態様において、上記表示制御手段は、上記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上にさらに表示しうる。
【００２９】
本発明の一つの実施態様において、第２のコンピュータは、
上記複数の変更履歴データのうちから、ユーザによって特定された機能単位（第１の機能単位）を含む変更履歴データを抽出する抽出手段と、
上記抽出された変更履歴データ（第１の変更履歴データ）の一覧（第１の一覧）を記憶する記憶手段と、
上記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を表示装置上に表示する表示制御手段と
を備えている。
【００３０】
以下に、上記第１のコンピュータ及び上記第２のコンピュータが共通に備えうる機能について述べる。
【００３１】
本発明の一つの実施態様において、上記表示制御手段が、上記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示する場合に、１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報の表示を固定し、残りの変更履歴データを上記バージョン情報の順に又は当該変更履歴データの作成日の順に従って表示することを可能にしうる。また、本発明の一つの実施態様において、上記表示制御手段が、上記第１の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示する場合に、１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報と残りの変更履歴データとを、上記バージョン情報の順に又は当該変更履歴データの作成日の順に従って表示することを可能にしうる。
【００３２】
本発明の一つの実施態様において、上記表示制御手段が、上記第１の機能単位と異なる機能単位（第２の機能単位）がユーザから指定されることに応じて、上記第１の変更履歴データのうちから、上記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（第２の変更履歴データ）の一覧（第２の一覧）を上記表示装置上にさらに表示しうる。また、本発明の一つの実施態様において、上記表示制御手段が、上記第１の機能単位と異なる機能単位（第２の機能単位）がユーザから指定されることに応じて、上記複数の変更履歴データのうちから、上記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（第３の変更履歴データ）と上記第１の変更履歴データを組み合わせて、当該組み合わせた変更履歴データの一覧（第３の一覧）を上記表示装置上にさらに表示しうる。また、本発明の一つの実施態様において、上記表示制御手段が、上記第２の一覧を表示すること及び上記第３の一覧を表示することから選択される任意の少なくとも２つを組み合わせて上記表示装置上に表示しうる。
【００３３】
本発明の一つの実施態様において、上記表示制御手段が、上記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示しうる。また、本発明の一つの実施態様において、上記表示制御手段が、上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示しうる。
【００３４】
本発明の一つの実施態様において、上記抽出手段がさらに、上記第１の機能単位と異なる機能単位（第２の機能単位）がユーザから指定されることに応じて、上記第１の変更履歴データのうちから、上記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（第２の変更履歴データ）の一覧（第２の一覧）を記憶領域内に作成し、上記表示制御手段がさらに、当該第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示しうる。また、本発明の一つの実施態様において、上記抽出手段がさらに、上記第１の機能単位と異なる機能単位（第２の機能単位）がユーザから指定されることに応じて、上記複数の変更履歴データのうちから、上記第２の機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データ（第３の変更履歴データ）と上記第１の変更履歴データを組み合わせて、当該組み合わせた変更履歴データの一覧（第３の一覧）を記憶領域内に作成し、上記表示制御手段がさらに、当該第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示しうる。本発明の一つの実施態様において、上記表示制御手段が、上記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコードを上記表示装置上に表示すること、上記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応する上記ソースコードに関連付けられた情報を上記表示装置上に表示すること、上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコードを上記表示装置上に表示すること、及び、上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応する上記ソースコードに関連付けられた情報を上記表示装置上に表示することから選択される任意の少なくとも２つを組み合わせて実行しうる。
【００３５】
本発明の一つの実施態様において、上記表示制御手段が上記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップ又は上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示する場合に、１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報の表示を上記表示装置上で固定し、残りの変更履歴データを上記バージョン情報の順又は当該変更履歴データの作成日の順に従って上記表示装置上に表示することを可能にしうる。また、本発明の一つの実施態様において、上記表示制御手段が上記第２の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示するステップ又は上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示する場合に、１つ又は複数の変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報と残りの変更履歴データとを、上記バージョン情報の順に又は当該変更履歴データの作成日の順に従って上記表示装置上に表示することを可能にしうる。
【００３６】
本発明の一つの実施態様において、上記第２の機能単位のユーザからの上記指定が、上記第２の機能単位が上記第１の機能単位と別の名前であるという指定であり、上記表示制御手段が、上記第２の機能単位が上記第１の機能単位と別の名前であるという上記指定に応じて、上記第３の一覧を上記表示装置上に表示しうる。
【００３７】
本発明の一つの実施態様において、上記第２の機能単位のユーザからの上記指定が、上記第２の機能単位が上記第１の機能単位と別の名前であるという指定であり、上記表示制御手段が、上記第２の機能単位が上記第１の機能単位と別の名前であるという上記指定に応じて、上記第３の一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を上記表示装置上に表示しうる。
【００３８】
本発明の一つの実施態様において、上記第１及び上記第２のコンピュータは、上記変更履歴データのバージョン情報の範囲を指定する指定手段をさらに含みうる。
【００３９】
第３に、本発明は、ソースコードへのリンク情報及びバージョン情報を含む複数の変更履歴データのうちから、当該ソースコード中の変更内容を探索するためのコンピュータ・プログラムを提供する。当該コンピュータ・プログラムは、上記コンピュータに、上記方法の各ステップを実行させる。
【００４０】
また、本発明は、そのようなコンピュータ・プログラム自体のみならず、コンピュータ・プログラムを記録した記録媒体もその範囲に含むものである。本発明の機能を実行するためのコンピュータ・プログラムは、フレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ、ハードディスク装置、ＵＳＢメモリ、ＲＯＭ、ＭＲＡＭ、ＲＡＭ等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。かかるコンピュータ・プログラムは、記録媒体への格納のために、通信回線で接続する他のデータ処理システムからダウンロードしたり、他の記録媒体から複製したりすることができる。また、かかるプログラムは、圧縮し、又は複数に分割して、単一又は複数の記録媒体に格納することもできる。また、様々な形態で、本発明を実施するコンピュータ・プログラム製品を提供することも勿論可能であることにも留意されたい。コンピュータ・プログラム製品は、例えば、上記のコンピュータ・プログラムを格納する記憶媒体、又は、上記のコンピュータ・プログラムを伝送する伝送媒体を含めることができる。
【００４１】
本発明の上記概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーション又はサブコンビネーションもまた、本発明となりうることに留意すべきである。
【００４２】
本発明の実施形態において使用されるコンピュータの各ハードウェア構成要素を、複数のマシンと組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【００４３】
また、本発明は、ハードウェア、ソフトウェア、又は、ハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアとの組み合わせによる実行において、上記のコンピュータ・プログラムがインストールされた装置における実行が典型的な例として挙げられる。かかる場合、該コンピュータ・プログラムが該装置のメモリにロードされて実行されることにより、該コンピュータ・プログラムは、該装置を制御し、本発明にかかる処理を実行させる。該コンピュータ・プログラムは、任意の言語、コード、又は、表記によって表現可能な命令群から構成されうる。そのような命令群は、該装置が特定の機能を直接的に、又は、１．他の言語、コード若しくは表記への変換、２．他の媒体への複製、のいずれか一方若しくは双方が行われた後に、実行することを可能にするものである。
【発明の効果】
【００４４】
本発明は、特定のファイルについての複数の変更履歴データのうちからユーザによって特定された機能単位を含む変更履歴データを抽出することによって、当該抽出された変更履歴データのナビゲーションをすることを可能にする。当該ナビゲーションは、複数の変更履歴データのうちからソースコード中の目的とする変更内容の探索を容易にする。また、当該ナビゲーションは、複数の変更履歴データのうちからソースコード中の目的とする変更内容を探索することを効率化する。従って、本発明は、ソフトウェア開発において検出された問題が混入されてしまった変更、及び、当該混入された以降における変更の推移を把握する上でも有用である。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施形態に従うコンピュータのハードウェア構成の一例を示した図である。
【図２Ａ】図１に従うハードウェア構成を好ましくは有し、本発明の一つの実施形態に従うコンピュータの機能ブロック図である。
【図２Ｂ】本発明の１つの実施態様において使用されうる、各変更履歴データのブロック図である。
【図３Ａ】従来技術である、特定のファイルについての変更履歴データの全てをリストアップした一覧を示す。
【図３Ｂ】本発明の一つの実施態様に従い、図３Ａに示す変更履歴データ・リスト中の変更履歴データのうちから、下記図３Ｂの説明において示す条件１にマッチする変更履歴データを抽出したものであり、当該条件１にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件１にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
【図３Ｃ】本発明の一つの実施態様に従い、図３Ａに示す変更履歴データ・リスト中の変更履歴データのうちから、下記図３Ｃの説明において示す条件２にマッチする変更履歴データを抽出したものであり、当該条件２にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件２にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
【図３Ｄ】本発明の一つの実施態様に従い、図３Ａに示す変更履歴データ・リスト中の変更履歴データのうちから、下記図３Ｄの説明において示す条件３にマッチする変更履歴データを抽出したものであり、当該条件３にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件２にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
【図３Ｅ】本発明の一つの下記に示す実施態様に従い、図３Ａに示す変更履歴データ・リスト中の変更履歴データのうちから、下記図３Ｅの説明において示す条件４にマッチする変更履歴データを抽出したものであり、当該条件４にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件４にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
【図３Ｆ】本発明の一つの実施態様に従い、図３Ａに示す変更履歴データ・リスト中の変更履歴データのうちから、下記図３Ｆの説明において示す条件５にマッチする変更履歴データを抽出したものであり、当該条件５にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件５にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
【図３Ｇ】本発明の一つの実施態様に従い、図３Ａに示す変更履歴データ・リスト中の変更履歴データのうちから、下記図３Ｇの説明において示す条件６にマッチする変更履歴データを抽出したものであり、当該条件６にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件６にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
【図４Ａ】本発明の一つの実施態様において使用されうるグラフィカル・ユーザ・インターフェースの例を示す。
【図４Ｂ】本発明の一つの実施態様において使用されうるグラフィカル・ユーザ・インターフェースの例を示す。
【図５Ａ】本発明の一つの実施態様に従い、グラフィカル・ユーザ・インターフェース上で、変更履歴データのうちから、ユーザによって特定された機能単位を含む変更履歴データを「and」条件を用いて抽出し、当該抽出された変更履歴データの一覧を表示する例を示す。
【図５Ｂ】本発明の一つの実施態様に従い、グラフィカル・ユーザ・インターフェース上で、変更履歴データのうちから、ユーザによって特定された機能単位を含む変更履歴データを「or」条件を用いて抽出し、当該抽出された変更履歴データの一覧を表示する例を示す。
【図５Ｃ】本発明の一つの実施態様に従い、グラフィカル・ユーザ・インターフェース上で、特定の機能単位が別の特定の機能単位の別の名前であるという指定をユーザが行うことを可能にし、且つ、変更履歴データのうちから、当該ユーザによって指定された機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データの一覧を表示する例を示す。
【図６Ａ】本発明の一つの実施態様に従い、２つの異なるバージョン番号を有する変更履歴データそれぞれに対応するソースコードを表示装置上に表示し、各変更履歴に対応するソースコードの表示をバージョンに従い進めたり又は戻したりする例を示す。
【図６Ｂ】本発明の一つの実施態様に従い、２つの異なるバージョン番号を有する変更履歴データそれぞれに対応するソースコードを表示装置上に表示し、一方の変更履歴データに対応するソースコードの表示を固定し、他方の変更履歴データに対応するソースコードの表示をバージョンに従い進めたり又は戻したりする例を示す。
【図６Ｃ】本発明の一つの実施態様に従い、２つの異なるバージョン番号を有する変更履歴データそれぞれに対応するソースコードを表示装置上に表示し、各変更履歴に対応するソースコードの表示をバージョンに従い進めたり又は戻したりする例を示す。
【図７】本発明の一つの実施態様に従い、特定のファイルについての複数の変更履歴データのうちからユーザによって特定された機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データの一覧を表示し又は作成し、当該一覧のうちの少なくとも２つの異なる変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報を表示するためのフローチャートを示す。
【図８Ａ】図７に示すフローチャートに従い抽出された変更履歴データに対してさらに処理をして、変更履歴データのリストを動的に更新する処理のためのフローチャートを示す。
【図８Ｂ】図７に示すフローチャートに従い抽出された変更履歴データに対してさらに処理をして、変更履歴データのリストを動的に更新する処理のためのフローチャートを示す。
【図８Ｃ】図７、図８Ａ及び図８Ｂに示す各フローチャートに従い抽出された変更履歴データに対して、ユーザによって指定された範囲のバージョン番号を有する変更履歴データを抽出する処理のためのフローチャートを示す。
【図９Ａ】図６Ａ〜図６Ｃに示す変更履歴データに対応する各ソースコードの表示を変更履歴データが有するバージョン番号に従い進める処理のためのフローチャートを示す。
【図９Ｂ】図６Ａ〜図６Ｃに示す変更履歴データに対応する各ソースコードの表示を変更履歴データが有するバージョン番号に従い戻す処理のためのフローチャートを示す。
【発明を実施するための形態】
【００４６】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものでなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。また、本発明は多くの異なる態様で実施することが可能であり、以下の実施形態において、種々の変更または改良を加えることが可能であることが当業者に明らかである。
【００４７】
以下において、特に断らない限り、発明を実施するための形態の説明の全体を通じて同じ要素には同じ番号を付している。なお、図面に示すソースコード及び変更履歴データ・リストは例示であって、本発明を説明するためのモデル・ソースコードであることに留意されたい。また、図面に示すソースコードは、変更履歴データ・リスト中の更新履歴データに対応するソースコードに必ずしも対応するものでなく、例示に過ぎないことに留意されたい。
【００４８】
図１は、本発明の実施形態に従うコンピュータのハードウェア構成の一例を示した図である。
コンピュータ（１０１）は、ＣＰＵ（１０２）とメイン・メモリ（１０３）とを備えており、これらはバス（１０４）に接続されている。ＣＰＵ（１０２）は好ましくは、３２ビット又は６４ビットのアーキテクチャに基づくものであり、例えば、インテル社のＣｏｒｅ  ｉ（商標）シリーズ、Ｃｏｒｅ  ２（商標）シリーズ、Ａｔｏｍ（商標）シリーズ、Ｘｅｏｎ（商標）シリーズ、Ｐｅｎｔｉｕｍ（登録商標）シリーズ、若しくはＣｅｌｅｒｏｎ（商標）シリーズ、ＡＭＤ社のＯｐｔｅｒｏｎ（商標）シリーズ、Ｐｈｅｎｏｍ（商標）シリーズ、Ａｔｈｌｏｎ（商標）シリーズ、Ｔｕｒｉｏｎ（商標）シリーズ、Ｓｅｍｐｒｏｎ（商標）若しくはＡシリーズ、又は、ＮＶＩＶＡ社のＴｅｇｒａ（商標）モバイル・プロセッサが使用されうる。バス（１０４）には、ディスプレイ・コントローラ（１０５）を介して、ディスプレイ（１０６）、例えば液晶ディスプレイ（ＬＣＤ）が接続されうる。ディスプレイ（１０６）は、コンピュータ（１０１）内に埋め込まれていてもよい。また、ディスプレイ（１０６）は、コンピュータ（１０１）に有線的に又は無線的に接続されうる。バス（１０４）にはまた、ＳＡＴＡ又はＩＤＥコントローラ（１０７）を介して、ディスク（１０８）、例えばシリコン・ディスク又はハードディスクと、ドライブ（１０９）、例えばＣＤ、ＤＶＤ又はＢＤドライブとが接続されうる。バス（１０４）にはさらに、キーボード・マウスコントローラ（１１０）又はＵＳＢバス（図示せず）を介して、キーボード（１１１）及びマウス（１１２）が接続されうる。
【００４９】
ディスク（１０８）には、オペレーティング・システム、Ｊ２ＥＥなどのＪａｖａ（登録商標）処理環境、Ｊａｖａ（登録商標）アプリケーション、Ｊａｖａ（登録商標）仮想マシン（ＶＭ）、Ｊａｖａ（登録商標）実行時（ＪＩＴ）コンパイラを提供するプログラム、その他のプログラム、及びデータが、メイン・メモリにロード可能に記憶されている。また、ディスク（１０８）には、コードの入力乃至は編集を可能にするソフトウェア、文字変換処理ソフトウェアであるフロント・エンド・プロセッサ（ＦＥＰ）がメイン・メモリにロード可能に記憶されている。オペレーティング・システムは、例えば、マイクロソフト・コーポレーションが提供するＷｉｎｄｏｗｓ（登録商標）オペレーティング・システム、アップル・コンピュータ・インコーポレイテッドが提供するＭａｃＯＳ（）商標）若しくはｉＯＳ（登録商標）、Ｘ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍを備えるＵＮＩＸ（登録商標）系システム（たとえば、インターナショナル・ビジネス・マシーンズ・コーポレーション（登録商標）が提供するＡＩＸ（登録商標）、その他Ａｎｄｒｏｉｄ（登録商標）のような、グラフィカル・ユーザ・インターフェース（ＧＵＩ）マルチウィンドウ環境をサポートするオペレーティング・システムでありうる。
【００５０】
ドライブ（１０９）は、必要に応じて、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又はＢＤからプログラムをディスク（１０８）にインストールするために使用される。
【００５１】
通信インタフェース（１１４）は、例えばイーサネット（登録商標）・プロトコルに従う。通信インタフェース（１１４）は、通信コントローラ（１１３）を介してバス（１０４）に接続され、コンピュータ（１０１）を通信回線（１１５）に物理的に接続する役割を担い、コンピュータ（１０１）のオペレーティング・システムの通信機能のＴＣＰ／ＩＰ通信プロトコルに対して、ネットワーク・インタフェース層を提供する。なお、通信回線は、有線ＬＡＮ環境、又は例えばＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎなどの無線ＬＡＮ接続規格に基づく無線ＬＡＮ環境であってもよい。また、通信インターフェースは、ブルートゥース又は赤外線通信の機能を備えうる。
【００５２】
以上の説明により、本発明の実施の形態に従うコンピュータは、通常のパーソナル・コンピュータ、ワークステーション、メインフレームなどのコンピュータ、または、これらの組み合わせを含むシステムによって実現されうる。
【００５３】
以上の説明により、本発明の実施の形態において使用されるコンピュータは、特定のオペレーティング・システム環境に限定されるものではないことを理解することができるであろう。
【００５４】
図２Ａは、図１に従うハードウェア構成を好ましくは有し、本発明の一つの実施形態に従うコンピュータの機能ブロック図である。
【００５５】
コンピュータ（１０１）は、図１に従うハードウェア構成を有しうる。コンピュータ（１０１）は、入力手段（２０１）、編集手段（２０２）、抽出手段（２０３）、表示制御手段（２０４）、指定手段（図示せず）、並びに、表示装置（２０５）及び記憶手段（２０６）を備えうる。
【００５６】
入力手段（２０１）は、ソースコード；変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報を表示する対象である特定のファイルの名前；及び／又は、機能単位の特定を含む条件式をユーザから受信する。
【００５７】
編集手段（２０２）は、ソースコードの編集を可能にするアプリケーションに備えられた機能でありうる。当該アプリケーションは、例えば、テキストエディタ、又は、特定のプログラムをプログラミングするための専用のアプリケーションソフトウェアでありうる。当該アプリケーションは、例えば変更管理ツール、例えばインターナショナル・ビジネス・マシーンズ・コーポレーション（登録商標）から販売されているRational（登録商標） Team Concert（登録商標）若しくはRational（登録商標） ClearCase（登録商標）、又は、Subversion若しくはフリーソフトウェアであるコンカレント・バージョンズ・システム（Concurrent Versions System）でありうる。編集手段（２０２）は、ユーザがソースコード中にコードを挿入し、削除し、又は変更することを許す。
【００５８】
抽出手段（２０３）は、複数の変更履歴データのうちから、ユーザによって特定された機能単位を含む変更履歴データを抽出する。抽出手段（２０３）は、複数の変更履歴データを記憶手段（２０６）から取り出しうる。
【００５９】
本発明の実施態様において、「機能単位」とは、範囲を特定可能な情報を持つ範囲であり、例えば、範囲が特定できるもの、又は、あるコメントで囲まれた範囲でありうる。また、「機能単位」とは、具体的には、例えば、変数、関数、マクロ定義、メソッド、サブルーチン、又は、構造化文書の例えばタグ構造でありうるがこれらに限定されるものではない。範囲を特定可能な情報とは、例えば機能単位がメソッドである場合、シグネチャであり、また、例えば機能単位が構造化文書である場合、例えばタグでありうる。メソッドは、オブジェクト指向言語において用いられうる。構造化文書とは、例えば、ＳＧＭＬ、ＸＭＬ、ＨＴＭＬ、又は、ＸＨＴＭＬでありうる。
【００６０】
表示制御手段（２０４）は、変更履歴データの一覧（２１３）を表示装置（２０５）上に表示する。変更履歴データ（２１２）は、記憶手段（２０６）から取り出された、特定のファイルについての全ての変更履歴データ、又は、特定のファイルについての全ての変更履歴データのうちから、抽出手段（２０３）によって抽出された変更履歴データでありうる。
【００６１】
表示制御手段（２０４）は、表示装置（２０５）上に、複数の変更履歴データのうちから、ユーザによって特定された機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データの一覧を表示する。また、表示制御手段（２０４）は、表示装置（２０５）上に、上記一覧のうちの少なくとも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を表示する。ソースコードに関連付けられた情報とは、例えば、変更前と変更後の上記ソースコード間の差分、又は上記ソースコード中において、上記差分を強調したものをいう。
【００６２】
指定手段（図示せず）は、変更履歴データのバージョン情報の範囲をユーザが指定することを可能にする。当該指定は、例えばバージョン番号１４以降（図３Ｆを参照）、バージョン番号１６以降（図３Ｃを参照）のように、バージョン情報を所定の欄又はウィンドウに入力することによって行われうる。
【００６３】
表示装置（２０５）は、図１のディスプレイに対応する。表示装置（２０５）は、例えば、液晶ディスプレイであり、装置（１０１）の中に備えられている（すなわち埋め込まれている）か、又は、ケーブルを介して、コンピュータ（１０１）に接続されうる。また、表示装置（２０５）は、下記図４Ａに示すウィンドウ（４０１）を表示する。ウィンドウ（４０１）については、下記図４Ａの説明において述べる。
【００６４】
記憶手段（２０６）は、コンピュータ（１０１）の中に備えられている（すなわち埋め込まれている）か、又は、ケーブルを介して、又は、有線若しくは無線のイントラネットワーク若しくはインターネットワークを介してコンピュータ（１０１）に接続されうる。記憶手段（２０６）は、典型的には、例えば、ハードディスク・ドライブ（ＨＤＤ）又はソリッド・ステート・ドライブ（ＳＳＤ）でありうる。
【００６５】
記憶手段（２０６）は、ソースコード（２１１）、変更履歴データ（２１２）、変更履歴データの一覧（２１３）を格納しうる。
【００６６】
ソースコード（２１１）は、本発明においてどのようなコンピュータ言語で記載されたものであってもよい。コンピュータ言語は、例えば、プログラミング言語、スタイルシート言語、ハードウェア記述言語、データ記述言語、データベース言語、問い合わせ言語、及び、変換言語を包含しうる。
【００６７】
変更履歴データ（２１２）は、特定のファイルについての過去に行われた変更を表示するために使用されうる。また、変更履歴データ（２１２）は、各変更履歴データが作成された時点でのソースコードを表示するために使用されうる。変更履歴データ（２１２）は、特定のファイルについて、例えばユーザによるソースコードの編集後に行われるコミット操作に応じて作成されうる。変更履歴データ（２１２）の例は、下記図２Ｂの説明において詳しく述べる。
【００６８】
変更履歴データの一覧（２１３）は、特定のファイルについて作成された全ての変更履歴データをリストアップした変更履歴データ・リスト（例えば、図３Ａに示す変更履歴データ・リスト（３０１）を参照されたい）、又は、当該全ての変更履歴データをリストアップした変更履歴データ・リストのうちから、特定の変更履歴データ・リストをユーザによって特定された機能単位又はバージョン番号により抽出手段（２０３）によって抽出し、当該抽出された変更履歴データをリストアップした変更履歴データ・リスト（例えば、図３Ｂ〜図３Ｇに示す各変更履歴データ・リスト（３１１、３２１、３３１、３４１、３５１及び３６１）を参照されたい）でありうる。
【００６９】
図２Ｂは、本発明の１つの実施態様において使用されうる、各変更履歴データ（２１２）のブロック図である。
変更履歴データ（２１２）は、複数の変更履歴データ（２１２−１〜２１２−ｎ）（ｎは２以上の整数である）からなる。各変更履歴データ（２１２−１〜２１２−ｎ）は、例えばユーザによるソースコードの編集後に行われるコミット操作に応じて作成されうる。
【００７０】
各変更履歴データ（２１２−１〜２１２−ｎ）は、バージョン情報（２２１−１〜２２１−ｎ）、リンク情報（２３１−１〜２３１−ｎ）、コード変更情報（２４１−１〜２４１−ｎ）、変更したユーザ（以下、変更者ともいう）（２５１−１〜２５１−ｎ）、コメント（２６１−１〜２６１−ｎ）、及び作成日付（２７１−１〜２７１−ｎ）を有する。
【００７１】
バージョン情報（２２１−１〜２２１−ｎ）は、変更履歴データを識別するために付されたものである。バージョン情報（２２１−１〜２２１−ｎ）は、例えば、数字、文字、記号、又はそれらの組み合わせでありうる。バージョン情報（２２１−１〜２２１−ｎ）は、例えば変更履歴が新しいものほど数字が大きくなるように、バージョン番号が各変更履歴データに付される。また、バージョン情報（２２１−１〜２２１−ｎ）は、表示制御手段（２０４）が各変更履歴データ（２１２−１〜２１２−ｎ）から特定の変更履歴データを特定するために使用されうる。
【００７２】
リンク情報（２３１−１〜２３１−ｎ）は、ソースコードへのリンク情報又はソースコードを再現するためのデータを特定する為のリンク情報である。ソースコードへのリンクのさせ方は、変更管理ツールによって異なりうる。例えば、コンカレント・バージョンズ・システムの場合、特定ファイルについて、全ての時点でのバージョンのソースコードを全て保存するので、リンク情報（２３１−１〜２３１−ｎ）は各時点でのバージョンのソースコードを保存したリンク先情報でありうる。例えば、Subversionの場合、特定ファイルについてのソースコードを特定の時点でのバージョンのソースコードを全て保存し、それ以降のバージョンでは当該特定の時点でのバージョンのソースコードとの差分を保存するので、リンク情報（２３１−１〜２３１−ｎ）は、特定の時点でのバージョンのソースコード及び上記差分を保存したリンク先情報でありうる。
【００７３】
コード変更情報（２４１−１〜２４１−ｎ）は、ソースコードの変更内容、及び変更された箇所を特定する為の情報を含む。変更された箇所の特定は、例えば、ページ又は行を特定することによって行われうる。
【００７４】
変更したユーザ（２５１−１〜２５１−ｎ）は、ソースコードを変更したユーザ名である。
【００７５】
コメント（２６１−１〜２６１−ｎ）は、変更したユーザによる変更についてのコメント、又は、変更したユーザに関連するユーザが付したコメントでありうる。
【００７６】
作成日付（２７１−１〜２７１−ｎ）は、当該変更履歴データが作成された日付（すなわち、ソースコードが変更された変更日付）である。
【００７７】
変更履歴データそれ自体は、当業者に知られている又は用いられている任意のデータ構造体をとりうる。また、変更履歴データの生成及び管理それ自体は、当業者に知られている又は用いられている任意の方法をとりうる。
【００７８】
以下に、本発明で使用しうる変更履歴データ・リストについて、図３Ａ〜図３Ｇに示す変更履歴データ・リストの例を参照しながら説明する。
【００７９】
図３Ａは、従来技術である、特定のファイルについての全ての変更履歴データをリストアップした一覧（変更履歴データ・リストともいう）を示す。
図３Ａに示す変更履歴データ・リスト（３０１）は、特定のファイルについて作成された全ての変更履歴データをリストアップした変更履歴データ・リストである。なお、図３Ａに示す変更履歴データ・リストは一例であって、本発明は図３Ａに示す変更履歴データ・リストの仕様に限定されるものではないことに留意されたい。当業者は、変更履歴データ・リストの仕様として、当業者に知られている又は用いられている任意の仕様を採りうる。
【００８０】
変更履歴データ・リスト（３０１）は、バージョン情報が１〜２６を有する各変更履歴データがあることを示す。変更履歴データ・リスト（３０１）では、各変更履歴データは、バージョン（バージョン情報である）、変更コメント、変更日付、及び変更者の各項目を有している。図３Ａでは、変更履歴データ・リスト（３０１）の右側に補足事項として、ソースコードの変更内容を記している。当該補足事項は、例えば、変更履歴データ内において、コメントとして管理されているものでありうる。当該補足事項は、表示装置（２０５）上に表示されなくてもよい（通常は表示されない）。
【００８１】
以下、図３Ｂ〜図３Ｇにおいて、本発明の実施態様に従い、変更履歴データのうちから、ユーザによって特定された機能単位を含む変更履歴データを抽出する態様を説明する。
【００８２】
図３Ｂは、本発明の一つの実施態様に従い、図３Ａに示す変更履歴データ・リスト（３０１）中の変更履歴データのうちから、下記条件１に従い変更履歴データを抽出し、当該条件１にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件１にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
条件１は、下記の通りである：
条件１  変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちからユーザによって特定された機能単位である「foobar」を含む変更履歴データを抽出する。
【００８３】
変更履歴データ・リスト（３１１）は、抽出手段（２０３）が上記条件１に従い、変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちからユーザによって特定された機能単位である「foobar」を含む変更履歴データを特定し、当該特定されたもの以外をグレーアウトして表示することによって得られる変更履歴データ・リストである。上記特定された変更履歴データ以外の変更履歴データ（バージョン１〜１３，１６，１８，２０〜２３及び２５〜２６を有する）をグレーアウトすることによって、ユーザは、上記特定された変更履歴データ（バージョン１４，１５，１７，１９及び２４を有する）を判別しやすくなる。上記特定された変更履歴データ（バージョン１４，１５，１７，１９及び２４を有する）は、変更履歴に機能単位「foobar」を含むものである。
【００８４】
変更履歴データ・リスト（３１２）は、変更履歴データ・リスト（３１１）においてグレーアウトされている変更履歴データを除いて又は非表示にして得られる変更履歴データ・リストである。
【００８５】
ユーザは、変更履歴データ・リスト（３１１）又は変更履歴データ・リスト（３１２）のいずれかを表示装置（２０５）上に表示することを選択しうる。表示制御手段（２０４）は、上記選択に応じて、変更履歴データ・リスト（３１１）又は変更履歴データ・リスト（３１２）のいずれかを表示装置（２０５）上に表示しうる。
【００８６】
図３Ｃは、本発明の一つの実施態様に従い、図３Ａに示す変更履歴データ・リスト（３０１）中の変更履歴データのうちから、下記条件２に従い変更履歴データを抽出し、当該条件２にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件２にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
条件２は、下記の通りである：
条件２  変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちから、ユーザによって特定された機能単位である「foobar」を含む変更履歴データを抽出する（上記条件１と同じ）；当該抽出した変更履歴データのうちから、ユーザによって特定されたバージョン情報の範囲が１６以降の変更履歴データをさらに抽出する。
【００８７】
変更履歴データ・リスト（３２１）は、抽出手段（２０３）が上記条件２に従い、変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちからユーザによって特定された機能単位である「foobar」を含む変更履歴データを特定し、次に、当該特定された変更履歴データ・リスト（図３Ｂに示す３１１と同じ）中の全ての変更履歴データのうちからバージョン情報の範囲が１６以降の変更履歴データをさらに特定し、当該さらに特定されたもの以外をグレーアウトして表示することによって得られる変更履歴データ・リストである。上記さらに特定された変更履歴データ以外の変更履歴データ（バージョン１〜１６，１８，２０〜２３及び２５〜２６を有する）をグレーアウトすることによって、ユーザは、上記さらに特定された変更履歴データ（バージョン１７，１９及び２４を有する）を判別しやすくなる。上記さらに特定された変更履歴データ（バージョン１７，１９及び２４を有する）は、変更履歴に機能単位「foobar」を含み、且つ、バージョン情報の範囲が１６以降のものである。
【００８８】
変更履歴データ・リスト（３２２）は、変更履歴データ・リスト（３２１）においてグレーアウトされている変更履歴データを除いて又は非表示にして得られる変更履歴データ・リストである。
【００８９】
ユーザは、変更履歴データ・リスト（３２１）又は変更履歴データ・リスト（３２２）のいずれかを表示装置（２０５）上に表示することを選択しうる。表示制御手段（２０４）は、上記選択に応じて、変更履歴データ・リスト（３２１）又は変更履歴データ・リスト（３２２）のいずれかを表示装置（２０５）上に表示しうる。
【００９０】
図３Ｄは、本発明の一つの実施態様に従い、図３Ａに示す変更履歴データ・リスト（３０１）中の変更履歴データのうちから、下記条件３に従い変更履歴データを抽出し、当該条件３にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件３にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
条件３は、下記の通りである：
条件３  変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちから、ユーザによって特定された機能単位である「foobar」を含む変更履歴データを抽出する（上記条件１と同じ）；当該抽出した変更履歴データのうちから、ユーザによって特定された機能単位である「baz」を含む変更履歴データをさらに抽出する。
【００９１】
変更履歴データ・リスト（３３１）は、抽出手段（２０３）が上記条件３に従い、変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちからユーザによって特定された機能単位である「foobar」を含む変更履歴データを特定し、次に、当該特定された変更履歴データ・リスト（図３Ｂに示す３１１と同じ）中の全ての変更履歴データのうちからユーザによって特定された機能単位である「baz」を含む変更履歴データをさらに特定し、当該さらに特定されたもの以外をグレーアウトして表示することによって得られる変更履歴データ・リストである。上記さらに特定された変更履歴データ以外の変更履歴データ（バージョン１〜１３，１６〜１８，及び２０〜２６を有する）をグレーアウトすることによって、ユーザは、上記さらに特定された変更履歴データ（バージョン１４，１５及び１９を有する）を判別しやすくなる。上記さらに特定された変更履歴データ（バージョン１４，１５及び１９を有する）は、変更履歴に機能単位「foobar」及び機能単位「baz」のいずれをも含むものである。すなわち、条件３は「and」条件である。
【００９２】
変更履歴データ・リスト（３３２）は、変更履歴データ・リスト（３３１）においてグレーアウトされている変更履歴データを除いて又は非表示にして得られる変更履歴データ・リストである。
【００９３】
ユーザは、変更履歴データ・リスト（３３１）又は変更履歴データ・リスト（３３２）のいずれかを表示装置（２０５）上に表示することを選択しうる。表示制御手段（２０４）は、上記選択に応じて、変更履歴データ・リスト（３３１）又は変更履歴データ・リスト（３３２）のいずれかを表示装置（２０５）上に表示しうる。
【００９４】
図３Ｅは、本発明の一つの実施態様に従い、図３Ａに示す変更履歴データ・リスト（３０１）中の変更履歴データのうちから、下記条件４に従い変更履歴データを抽出し、当該条件４にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件４にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
条件４は、下記の通りである：
条件４  変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちから、ユーザによって特定された機能単位である「foobar」を含む変更履歴データ（「foobar」を含む変更履歴データ）を抽出する（上記条件１と同じ）；変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちから、ユーザによって特定された機能単位である「baz」を含む変更履歴データ（「baz」を含む変更履歴データ）を抽出する；「foobar」を含む変更履歴データと「baz」を含む変更履歴データとを「or」条件で組み合わせる。
【００９５】
変更履歴データ・リスト（３４１）は、抽出手段（２０３）が上記条件４に従い、変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちからユーザによって特定された機能単位である「foobar」を含む変更履歴データを特定し、さらに、変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちからユーザによって特定された機能単位である「baz」を含む変更履歴データをさらに特定し、次に、「foobar」を含む変更履歴データと「baz」を含む変更履歴データとを「or」条件で組み合わせることによって得られるもの以外をグレーアウトして表示することによって得られる変更履歴データ・リストである。上記組み合わせることによって得られる変更履歴データ以外の変更履歴データ（バージョン１〜６，８〜１１，１３，１６，１８，２０，２２〜２３及び２５〜２６を有する）をグレーアウトすることによって、ユーザは、上記組み合わせることによって得られる変更履歴データ（バージョン７，１２，１４〜１５，１７，１９，２１及び２４を有する）を判別しやすくなる。上記組み合わせることによって得られる変更履歴データ（バージョン７，１２，１４〜１５，１７，１９，２１及び２４を有する）は、変更履歴に機能単位「foobar」又は機能単位「baz」のいずれかを含むものである。すなわち、条件４は「or」条件である。
【００９６】
変更履歴データ・リスト（３４２）は、変更履歴データ・リスト（３４１）においてグレーアウトされている変更履歴データを除いて又は非表示にして得られる変更履歴データ・リストである。
【００９７】
ユーザは、変更履歴データ・リスト（３４１）又は変更履歴データ・リスト（３４２）のいずれかを表示装置（２０５）上に表示することを選択しうる。表示制御手段（２０４）は、上記選択に応じて、変更履歴データ・リスト（３４１）又は変更履歴データ・リスト（３４２）のいずれかを表示装置（２０５）上に表示しうる。
【００９８】
図３Ｆは、本発明の一つの実施態様に従い、図３Ａに示す変更履歴データ・リスト（３０１）中の変更履歴データのうちから、下記条件５に従い変更履歴データを抽出し、当該条件５にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件５にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
条件５は、下記の通りである：
条件５  変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちから、ユーザによって特定された機能単位である「foobar」を含む変更履歴データ（「foobar」を含む変更履歴データ）を抽出する；変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちから、ユーザによって特定された機能単位である「baz」を含む変更履歴データ（「baz」を含む変更履歴データ）を抽出する；「foobar」を含む変更履歴データと「baz」を含む変更履歴データとを「or」条件で組み合わせる（以上、上記条件４と同じ）；当該組み合わせた変更履歴データのうちから、ユーザによって特定されたバージョン情報の範囲が１４以降の変更履歴データをさらに抽出する。
【００９９】
変更履歴データ・リスト（３５１）は、抽出手段（２０３）が上記条件５に従い、変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちからユーザによって特定された機能単位である「foobar」を含む変更履歴データを特定し、さらに、変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちからユーザによって特定された機能単位である「baz」を含む変更履歴データを特定し、次に、「foobar」を含む変更履歴データと「baz」を含む変更履歴データとを「or」条件で組み合わせて得られる変更履歴データのうちから、バージョン情報の範囲が１４以降の変更履歴データをさらに特定し、当該さらに特定されたもの以外をグレーアウトして表示することによって得られる変更履歴データ・リストである。上記さらに特定された変更履歴データ以外の変更履歴データ（バージョン１〜１３，１６，１８，２０、２２〜２３及び２５〜２６を有する）をグレーアウトすることによって、ユーザは、上記さらに特定された変更履歴データ（バージョン１４〜１５，１７，１９，２１及び２４を有する）を判別しやすくなる。上記さらに特定された変更履歴データ（バージョン１４〜１５、１７、１９、２１及び２４を有する）は、変更履歴に機能単位「foobar」又は機能単位「baz」のいずれかを含み、且つ、バージョン情報の範囲が１４以降のものである。
【０１００】
変更履歴データ・リスト（３５２）は、変更履歴データ・リスト（３５１）においてグレーアウトされている変更履歴データを除いて又は非表示にして得られる変更履歴データ・リストである。
【０１０１】
ユーザは、変更履歴データ・リスト（３５１）又は変更履歴データ・リスト（３５２）のいずれかを表示装置（２０５）上に表示することを選択しうる。表示制御手段（２０４）は、上記選択に応じて、変更履歴データ・リスト（３５１）又は変更履歴データ・リスト（３５２）のいずれかを表示装置（２０５）上に表示しうる。
【０１０２】
図３Ｇは、本発明の一つの実施態様に従い、図３Ａに示す変更履歴データ・リスト（３０１）中の変更履歴データのうちから、下記条件６に従い変更履歴データを抽出し、当該条件６にマッチしなかった変更履歴データをグレーアウトして表示したリスト（ａ）、及び、当該条件６にマッチした変更履歴データのみを表示したリスト（ｂ）を示す。
条件６は、下記の通りである：
条件６  変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちから、ユーザによって特定された機能単位である「foobar」を含む変更履歴データ（「foobar」を含む変更履歴データ）を抽出する；変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちから、「foobar」の別の名前である機能単位「foo」を含む変更履歴データ（「foo」を含む変更履歴データ）を抽出する；「foobar」を含む変更履歴データと「foo」を含む変更履歴データとを「or」条件で組み合わせる；当組み合わせた変更履歴データのうちから、ユーザによって特定されたバージョン情報の範囲が１３以前の変更履歴データをさらに抽出する。本発明において、「別の名前」とは、意味的に同値である機能単位をいう。
【０１０３】
変更履歴データ・リスト（３６１）は、抽出手段（２０３）が上記条件６に従い、変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちからユーザによって特定された機能単位である「foobar」を含む変更履歴データを特定し、さらに、変更履歴データ・リスト（３０１）中の全ての変更履歴データのうちからユーザによって「foobar」の別の名前であるとみなして特定された機能単位である「foo」を含む変更履歴データをさらに特定し、次に、「foobar」を含む変更履歴データと「foo」を含む変更履歴データとを「or」条件で組み合わせることによって得られるもの以外をグレーアウトして表示することによって得られる変更履歴データ・リストである。上記組み合わせることによって得られる変更履歴データ以外の変更履歴データ（バージョン１〜２，４，８〜１２，１６，１８，２０〜２３及び２５〜２６を有する）をグレーアウトすることによって、ユーザは、上記組み合わせることによって得られる変更履歴データ（バージョン３，５〜７，１３〜１５，１７，１９及び２４を有する）を判別しやすくなる。上記組み合わせることによって得られる変更履歴データ（バージョン３，５〜７，１３〜１５，１７，１９及び２４を有する）は、変更履歴に機能単位「foobar」又はその別の名前である「foo」のいずれかを含むものである。すなわち、条件６は「or」条件である。
【０１０４】
変更履歴データ・リスト（３６２）は、変更履歴データ・リスト（３６１）においてグレーアウトされている変更履歴データを除いて又は非表示にして得られる変更履歴データ・リストである。
【０１０５】
ユーザは、変更履歴データ・リスト（３６１）又は変更履歴データ・リスト（３６２）のいずれかを表示装置（２０５）上に表示することを選択しうる。表示制御手段（２０４）は、上記選択に応じて、変更履歴データ・リスト（３６１）又は変更履歴データ・リスト（３６２）のいずれかを表示装置（２０５）上に表示しうる。
【０１０６】
以下に、本発明で使用しうるグラフィカル・ユーザ・インターフェースについて、図４Ａ〜図４Ｂに示す例を参照しながら説明する。
【０１０７】
図４Ａは、本発明の一つの実施態様において使用されうるグラフィカル・ユーザ・インターフェースの例を示す。
装置（１０１）の表示装置（２０５）は、２つのソースコードを表示するためのウィンドウ（４０１）を表示する。ウィンドウ（４０１）は、表示Ａ（４０２）及び表示Ｂ（４０３）を有している。また、ウィンドウ（４０１）は、表示Ａ（４０２）用及び表示Ｂ（４０３）用それぞれに指定された変更履歴データを他のバージョン番号を有する変更履歴データに変更するために使用される４つのボタンを有するボタン操作部（４１１）を有している。さらに、ウィンドウ（４０１）は、表示Ａ（４０２）用に指定された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可又は不許可するためのピン（４３１）、及び、表示Ｂ（４０３）用に指定された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可又は不許可するためのピン（４４１）を有する。
【０１０８】
図４Ａでは、ウィンドウ（４０１）の左側に表示Ａ（４０２）が配置されており、且つ、その右側に表示Ｂ（４０３）が配置されている。本発明の他の実施態様において、ウィンドウ（４０１）の右側に表示Ａ（４０２）が配置されており、且つ、その左側に表示Ｂ（４０３）が配置されていてもよい。
【０１０９】
表示Ａ（４０２）は、例えば、ウィンドウ（４０１）の初期状態において、変更履歴データ中、最新のバージョン番号を有する変更履歴データに対応するソースコードを表示しうる。表示Ｂ（４０３）は、例えば、ウィンドウ（４０１）の初期状態において、変更履歴データ中、最新のバージョン番号より一つ前のバージョン番号を有する変更履歴データに対応するソースコードを表示しうる。ウィンドウ（４０１）の初期状態とは、ウィンドウ（４０１）上に２つの異なるバージョン番号を有する変更履歴データそれぞれに対応するソースコードを初めて表示したときの状態である。
【０１１０】
代替的には、ユーザが、特定ファイルの複数の変更履歴データのリストから、表示Ａ（４０２）のための変更履歴データを選択し、且つ、表示Ａ（４０２）のための変更履歴データを選択する。当該選択に応じて、表示制御手段（２０４）が、上記選択された変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報を表示Ａ（４０２）及び表示Ｂ（４０３）中に表示しうる。
【０１１１】
図４Ａでは、ウィンドウ（４０１）は、表示Ａ（４０２）及び表示Ｂ（４０３）という２つの表示を有している。本発明の他の実施態様において、ウィンドウ（４０１）が、さらに、表示Ｃ、表示Ｄ、・・・、及び、表示Ｎを有しうる。表示ＮのＮの数（Ｎは少なくとも２以上の整数である）は、ユーザが任意に指定しうる。
【０１１２】
表示Ａ（４０２）は、特定のファイルについての変更履歴データ中、最新のバージョン番号を有する変更履歴データに対応するソースコードを表示しているとする。表示Ｂ（４０３）は、上記と同じ特定のファイルについての変更履歴データ中、最新のバージョン番号より一つ前のバージョン番号を有する変更履歴データに対応するソースコードを表示しているとする。表示Ａ（４０２）に示されているソースコードと表示Ｂ（４０３）に示されているソースコードとの違いは、下記の通りである。すなわち、表示Ａ（４０２）では「int a = arg+2」（４０４）であるのに対して、表示Ｂ（４０３）では「int a= arg+1」（４０５）である。従って、ユーザは、表示Ａ（４０２）に示されているソースコード中「int a = arg+2」（４０４）が、表示Ｂ（４０３）に示されているソースコード中「int a = arg+1」（４０５）から更新されたコードであることを知る。表示制御手段（２０４）は、表示Ａ（４０２）中に表示されているソースコードと表示Ｂ（４０３）中に表示されているコードとの異なる部分を認識し、当該認識した部分を強調表示しうる。強調表示は、例えば図４Ａに示しているように上記認識部分を点線で囲んだり（４０４、４０５）、又は、上記認識部分のテキスト文字を他のテキスト文字の色と異なる色に変更したり、又は、上記認識部分のテキスト文字の背景色を表示Ａ（４０２）及び表示Ｂ（４０３）それぞれのデフォルトの背景色と異なる色に変更したりすることによって行われうる。また、表示制御手段（２０４）は、表示Ａ（４０２）中の点線部（４０４）と表示Ｂ（４０３）中の点線部（４０５）を例えば点線で関連付け、ユーザが上記異なる部分を把握しやすいようにしうる。
【０１１３】
ボタン操作部（４１１）は、図４Ａに示している例では、４つのボタン（４２１、４２２、４２３、及び４２４）を含む。ユーザが各ボタン（４２１、４２２、４２３、及び４２４）のいずれかをクリックすることによって、表示制御手段（２０４）は、下記に示すように、表示Ａ（４０２）及び表示Ｂ（４０３）それぞれに表示されているソースコードの表示をバージョン番号の順に、又は、変更履歴データの作成順に変更しうる。なお、以下では、バージョン番号の順に変更される場合を例として述べるが、当該例が上記変更履歴データの作成順においても同様に適用されることは当業者に明白である。
【０１１４】
表示制御手段（２０４）は、ボタン（４２１）がクリックされることによって、表示Ａ（４０２）に表示されているソースコードから、最新のバージョン番号を有する変更履歴データに対応するソースコードに表示を変更し、且つ、表示Ｂ（４０３）に表示されているソースコードから、最新のバージョン番号よりも一つ古い（すなわち前の）バージョン番号を有する変更履歴データに対応するソースコードに表示変更する。
【０１１５】
表示制御手段（２０４）は、ボタン（４２２）がクリックされることによって、表示Ａ（４０２）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ新しい（すなわち後の）バージョン番号を有する変更履歴データに対応するソースコードに表示を変更し、且つ、表示Ｂ（４０３）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ新しい（すなわち後の）バージョン番号を有する変更履歴データに対応するソースコードに表示を変更するために使用される。
【０１１６】
表示制御手段（２０４）は、ボタン（４２３）がクリックされることによって、表示Ａ（４０２）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ古い（すなわち前の）バージョン番号を有する変更履歴データに対応するソースコードに表示を変更し、且つ、表示Ｂ（４０３）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ古い（すなわち前の）バージョン番号を有する変更履歴データに対応するソースコードに表示を変更するために使用される。
【０１１７】
表示制御手段（２０４）は、ボタン（４２４）がクリックされることによって、表示Ｂ（４０３）に表示されているソースコードから、最古のバージョン番号を有する変更履歴データに対応するソースコードに表示を変更し、且つ、表示Ａ（４０２）に表示されているソースコードから、最古のバージョン番号よりも一つ新しい（すなわち後の）バージョン番号を有する変更履歴データに対応するソースコードに表示変更するために使用される。
【０１１８】
図４Ａでは、ボタン操作部（４１１）が４つのボタンを有する態様を示している。当業者であれば、ボタン操作部（４１１）がどのような機能を有するボタンを幾つ有するようにするかを任意に設定しうることは明白であろう。
【０１１９】
ピン（４３１）は、表示Ａ（４０２）用に指定された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可又は不許可するためのものであり、すなわち、表示Ａ（４０２）に表示されているソースコードが、ボタン（４２１〜４２４）のクリックによってそのソースコードの表示が変更されること又は変更されないことをユーザが指定するために使用されうる。ピン（４３１）のアイコン（４５１）は、表示Ａ（４０２）用に指定された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可することを示し、一方、ピン（４３１）のアイコン（４５２）は、表示Ａ（４０２）用に指定された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可していないこと（ピン留めともいう）を示す。
【０１２０】
ピン（４３１）のアイコンがアイコン（４５１）であり、且つ、ピン（４４１）のアイコンがアイコン（４６１）である場合に、ユーザが各ボタン（４２１、４２２、４２３、及び４２４）のいずれかをクリックすることによって、表示制御手段（２０４）が表示Ａ（４０２）及び表示Ｂ（４０３）それぞれに表示されているソースコードの表示をどのように変更するかについては、上記のボタン操作部（４１１）の説明において述べた通りである。
【０１２１】
ピン（４３１）のアイコンがアイコン（４５２）であり、且つ、ピン（４４１）のアイコンがアイコン（４６１）である場合に、ユーザが各ボタン（４２１、４２２、４２３、及び４２４）のいずれかをクリックすることによって、表示制御手段（２０４）は、下記に示すように、表示Ａ（４０２）及び表示Ｂ（４０３）それぞれに表示されているソースコードの表示を変更する。
【０１２２】
表示制御手段（２０４）は、ボタン（４２１）がクリックされることによって、表示Ａ（４０２）に表示されているソースコードの表示を変更せず、一方、表示Ｂ（４０３）に表示されているソースコードから、最新のバージョン番号よりも一つ古い（すなわち前の）バージョン番号を有する変更履歴データに対応するソースコードに表示変更する。
【０１２３】
表示制御手段（２０４）は、ボタン（４２２）がクリックされることによって、表示Ａ（４０２）に表示されているソースコードの表示を変更せず、一方、表示Ｂ（４０３）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ新しい（すなわち後の）バージョン番号を有する変更履歴データに対応するソースコードに表示を変更する。
【０１２４】
表示制御手段（２０４）は、ボタン（４２３）がクリックされることによって、表示Ａ（４０２）に表示されているソースコードの表示を変更せず、一方、表示Ｂ（４０３）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ古い（すなわち前の）バージョン番号を有する変更履歴データに対応するソースコードに表示を変更する。
【０１２５】
表示制御手段（２０４）は、ボタン（４２４）がクリックされることによって、表示Ａ（４０２）に表示されているソースコードの表示を変更せず、一方、表示Ｂ（４０３）に表示されているソースコードから、最古のバージョン番号を有する変更履歴データに対応するソースコードに表示を変更する。
【０１２６】
ピン（４４１）は、表示Ｂ（４０３）用に指定された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可又は不許可するためのものであり、すなわち、表示Ｂ（４０３）に表示されているソースコードが、ボタン（４２１〜４２４）のクリックによってそのソースコードの表示が変更されること又は変更されないことをユーザが指定するために使用されうる。ピン（４４１）のアイコン（４６１）は、表示Ｂ（４０３）用に指定された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可することを示し、一方、ピン（４４１）のアイコン（４６２）は、表示Ｂ（４０３）用に指定された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可していないこと（ピン留めともいう）を示す。
【０１２７】
ピン（４３１）のアイコンがアイコン（４５１）であり、且つ、ピン（４４１）のアイコンがアイコン（４６１）である場合に、ユーザが各ボタン（４２１、４２２、４２３、及び４２４）のいずれかをクリックすることによって、表示制御手段（２０４）が表示Ａ（４０２）及び表示Ｂ（４０３）それぞれに表示されているソースコードの表示をどのように変更するかについては、上記のボタン操作部（４１１）の説明において述べた通りである。
【０１２８】
ピン（４３１）のアイコンがアイコン（４５１）であり、且つ、ピン（４４１）のアイコンがアイコン（４６２）である場合に、ユーザが各ボタン（４２１、４２２、４２３、及び４２４）のいずれかをクリックすることによって、表示制御手段（２０４）は、下記に示すように、表示Ａ（４０２）及び表示Ｂ（４０３）それぞれに表示されているソースコードの表示を変更する。
【０１２９】
表示制御手段（２０４）は、ボタン（４２１）がクリックされることによって、表示Ａ（４０２）に表示されているソースコードから、最新のバージョン番号を有する変更履歴データに対応するソースコードに表示を変更し、一方、表示Ｂ（４０３）に表示されているソースコードの表示を変更しない。
【０１３０】
表示制御手段（２０４）は、ボタン（４２２）がクリックされることによって、表示Ａ（４０２）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ新しい（すなわち後の）バージョン番号を有する変更履歴データに対応するソースコードに表示を変更し、一方、表示Ｂ（４０３）に表示されているソースコードの表示を変更しない。
【０１３１】
表示制御手段（２０４）は、ボタン（４２３）がクリックされることによって、表示Ａ（４０２）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ古い（すなわち前の）バージョン番号を有する変更履歴データに対応するソースコードに表示を変更し、一方、表示Ｂ（４０３）に表示されているソースコードの表示を変更しない。
【０１３２】
表示制御手段（２０４）は、ボタン（４２４）がクリックされることによって、表示Ａ（４０２）に表示されているソースコードから、最古のバージョン番号よりも一つ新しい（すなわち後の）バージョン番号を有する変更履歴データに対応するソースコードに表示変更し、一方、表示Ｂ（４０３）に表示されているソースコードの表示を変更しない。
【０１３３】
ピン（４３１）のアイコンがアイコン（４５２）であり、且つ、ピン（４４１）のアイコンがアイコン（４６２）である場合に、ユーザが各ボタン（４２１、４２２、４２３、及び４２４）のいずれかをクリックしても、表示制御手段（２０４）は、表示Ａ（４０２）及び表示Ｂ（４０３）のそれぞれに表示されているソースコードのいずれをも変更しない。ピン（４３１）及びピン（４４１）いずれのピンもピン留めされているからである。
【０１３４】
図４Ｂは、本発明の一つの実施態様において使用されうるグラフィカル・ユーザ・インターフェースの例を示す。
図４Ｂに示すウィンドウ（４７１）は、図４Ａに示すウィンドウ（４０１）内に表示されている表示Ａ（４０２）、表示Ｂ（４０３）、ボタン操作部（４１１）、並びに、ピン（４３１）及びピン（４４１）に加えて、変更履歴データ・リスト（４８１）を有している。変更履歴データ・リスト（４８１）は、図３Ｅに示す変更履歴データ・リスト（３４２）と同じであるが、変更履歴データ・リスト（４８１）の内容は例示である。
【０１３５】
表示制御手段（２０４）は、表示Ａ（４０２）に表示されているソースコードを、「戻す」というボタン操作が行われることに応じて、バージョン番号が２４，２１，１９，１７，１５，１４及び１２の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能であり、逆に、「進める」というボタン操作が行われることに応じて、バージョン番号が１２，１４，１５，１７，１９，２１及び２４の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能である。また、表示制御手段（２０４）は、表示Ｂ（４０３）に表示されているソースコードを、上記「baz」での抽出後において、「戻す」というボタン操作が行われることに応じて、バージョン番号が２１，１９，１７，１５，１４，１２及び７の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能であり、逆に、「進める」というボタン操作が行われることに応じて、バージョン番号が７，１２，１４，１５，１７，１９，２１及び２４の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能である。
【０１３６】
図４Ａの説明において、表示Ａ（４０２）及び表示Ｂ（４０３）に表示されているソースコードの表示をボタン操作部（４１１）のボタン（４２１〜４２４）をクリックすることによって、他のバージョン番号を有する変更履歴データに対応するソースコードにナビゲートしうることを述べた。図４Ｂに示すように、ウィンドウ（４７１）が変更履歴データ・リスト（４８１）を表示している場合に、変更履歴データ・リスト上の特定の変更履歴データの行をマウス等で選択し、表示Ａ（４０２）内又は表示Ｂ（４０３）内にドラッグ・アンド・ドロップすることによって、ドロップされた左記の表示Ａ（４０２）又は表示Ｂ（４０３）に表示されているソースコードを上記選択された変更履歴データに対応するソースコードに表示変更することが可能である。以下に、当該表示変更について具体的に説明する。
【０１３７】
表示Ａ（４０２）は、変更履歴データ・リスト（４８１）中のバージョン２１に対応するソースコードを表示しているとする。表示Ｂ（４０３）は、変更履歴データ・リスト（４８１）中のバージョン１２に対応するソースコードを表示しているとする。ユーザは、変更履歴データ・リスト（４８１）中のバージョン１９が示されている行をマウスで選択してドラッグし、表示Ｂ（４０３）上でドロップする。表示制御手段（２０４）は、当該ドラッグ・アンド・ドロップに応じて、表示Ｂ（４０３）内に表示される、バージョン番号１２を有する変更履歴データに対応するソースコードの表示を、バージョン番号１９を有する変更履歴データに対応するソースコードの表示に置き換える。
【０１３８】
以下に、本発明の一つの実施態様に従い、グラフィカル・ユーザ・インターフェース上で、変更履歴データのうちから、ユーザによって特定された機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データの一覧を表示する例について、図５Ａ〜図５Ｃに示す例を参照しながら説明する。
【０１３９】
図５Ａは、本発明の一つの実施態様に従い、グラフィカル・ユーザ・インターフェース上で、変更履歴データのうちから、ユーザによって特定された機能単位を含む変更履歴データを「and」条件を用いて抽出し、当該抽出された変更履歴データの一覧を表示する例を示す。
表示装置（２０５）は、ウィンドウ（４０１）と特定のファイルについての変更履歴データ・リスト（３１２）とを表示している。図５Ａに示すウィンドウ（４０１）は、図４Ａに示すウィンドウ（４０１）と同じである。ウィンドウ（４０１）は、表示Ａ（４０２）及び表示Ｂ（４０３）という２つの表示を有している。また、図５Ａに示す変更履歴データ・リスト（３１２）は、図３Ｂに示す変更履歴データ・リスト（３１２）と同じである。
【０１４０】
表示制御装置（２０４）は、表示Ａ（４０２）に、変更履歴データ・リスト（３１２）中のバージョン番号が１９である変更履歴データに対応するソースコードを表示しているとする。また、表示制御装置（２０４）は、表示Ｂ（４０３）に、変更履歴データ・リスト（３１２）中のバージョン番号が１７である変更履歴データに対応するソースコードを表示しているとする。
【０１４１】
ユーザは、変更履歴データ・リスト（３１２）中の変更履歴データのうちから、さらに機能単位「baz」を含む変更履歴データを抽出したいとする。そこで、ユーザは、機能単位の入力をするために、メニュー・コマンドからポップアップ・ウィンドウを表示させるメニューを選択する。当該選択によって、表示制御手段（２０４）は、ポップアップ・ウィンドウ（５０１）を表示装置（２０５）上に表示する。代替的には、ユーザは、機能単位の入力をするために、ウィンドウ（４０１）内で例えば右クリックすることによって、ポップアップ・ウィンドウ（５０１）を表示させる。また、表示制御手段（２０４）は、ポップアップ・ウィンドウ（５０１）と同時に、条件「and」及び「or」の選択をクリックによって指定することが可能なポップアップ・ウィンドウ（５０２）をさらに表示しうる。代替的に、ユーザは、表示Ａ（４０２）及び表示Ｂ（４０３）中に表示されているソースコードから目的とする機能単位をクリックで選択して、特定の機能単位を指定することが可能である。
【０１４２】
ユーザは、ポップアップ・ウィンドウ（５０１）内に特定の機能単位である「baz」を入力し、且つ、ポップアップ・ウィンドウ（５０２）中の「and」をクリックで又はパネルタッチで選択したとする。代替的に、ユーザは、ポップアップ・ウィンドウ（５０１）内に、検索条件である「and」と特定の機能単位である「baz」を入力（例えば、「and baz」と入力）したとする。抽出手段（２０３）が、上記入力に応じて、変更履歴データ・リスト（３１２）中の変更履歴データのうちからユーザによって特定された機能単位である「baz」を含む変更履歴データをさらに抽出する。当該抽出した結果は、変更履歴データ・リスト（３３２）に示す通りである。図５Ａに示す変更履歴データ・リスト（３３２）は、図３Ｄに示す変更履歴データ・リスト（３３２）と同じである。そして、表示制御手段（２０４）は、変更履歴データ・リスト（３１２）の表示を変更履歴データ・リスト（３３２）の表示に置き換える。
【０１４３】
上記例では、ユーザによって特定された機能単位である「baz」で、変更履歴データ・リスト（３１２）中の変更履歴データのうちから、バージョン番号１４、１５及び１９を有する変更履歴データが抽出された。抽出後の表示Ａ（４０２）では、抽出前に表示していたソースコードに対応し且つバージョン番号１９を有する変更履歴データが、変更履歴データ・リスト（３３２）中にある。従って、表示Ａ（４０２）に表示されているソースコードは変更されない。一方、抽出後の表示Ｂ（４０３）では、抽出前に表示していたソースコードに対応し且つバージョン番号１７を有する変更履歴データが、変更履歴データ・リスト（３３２）中にない。そこで、表示制御手段（２０４）は、表示Ｂ（４０３）に表示されているソースコードを、バージョン番号１７の直前にあり且つ変更履歴データ・リスト（３３２）中にあるという条件を満たす変更履歴データ、すなわちバージョン番号１５を有する変更履歴データに対応するソースコードに変更して表示する（図示せず）。
【０１４４】
表示制御手段（２０４）は、表示Ａ（４０２）に表示されているソースコードを、上記「baz」での抽出後において、「戻す」というボタン操作が行われることに応じて、バージョン番号が１９及び１５の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能であり、逆に、「進める」というボタン操作が行われることに応じて、バージョン番号が１５及び１９の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能である。また、表示制御手段（２０４）は、表示Ｂ（４０３）に表示されているソースコードを、上記「baz」での抽出後において、「戻す」というボタン操作が行われることに応じて、バージョン番号が１５及び１４の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能であり、逆に、「進める」というボタン操作が行われることに応じて、バージョン番号が１４及び１５の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能である。
【０１４５】
図５Ｂは、本発明の一つの実施態様に従い、グラフィカル・ユーザ・インターフェース上で、変更履歴データのうちから、ユーザによって特定された機能単位を含む変更履歴データを「or」条件を用いて抽出し、当該抽出された変更履歴データの一覧を表示する例を示す。
表示装置（２０５）は、ウィンドウ（４０１）と特定のファイルについての変更履歴データ・リスト（３１２）を表示している。図５Ｂに示すウィンドウ（４０１）は、図４Ａに示すウィンドウ（４０１）と同じである。ウィンドウ（４０１）は、表示Ａ（４０２）及び表示Ｂ（４０３）という２つの表示を有している。また、図５Ｂに示す変更履歴データ・リスト（３１２）は、図３Ｂに示す変更履歴データ・リスト（３１２）と同じである。
【０１４６】
表示制御装置（２０４）は、表示Ａ（４０２）に、変更履歴データ・リスト（３１２）中のバージョン番号が１９である変更履歴データに対応するソースコードを表示しているとする。また、表示制御装置（２０４）は、表示Ｂ（４０３）に、変更履歴データ・リスト（３１２）中のバージョン番号が１７である変更履歴データに対応するソースコードを表示しているとする。
【０１４７】
ユーザは、記憶手段（２０６）に格納されている変更履歴データ（２１２）中の上記特定のファイルについての変更履歴データの全てから、機能単位「baz」を含む変更履歴データを抽出し、当該抽出した変更履歴データと変更履歴データ・リスト（３１２）中の変更履歴データとを結合させたいとする。そこで、ユーザは、機能単位の入力をするために、メニュー・コマンドからポップアップ・ウィンドウを表示させるメニューを選択する。当該選択によって、表示制御手段（２０４）は、ポップアップ・ウィンドウ（５０１）を表示装置（２０５）上に表示する。代替的には、ユーザは、機能単位の入力をするために、ウィンドウ（４０１）内で例えば右クリックすることによって、ポップアップ・ウィンドウ（５０１）を表示させる。また、表示制御手段（２０４）は、ポップアップ・ウィンドウ（５０１）と同時に、条件「and」及び「or」の選択をクリックによって指定することが可能なポップアップ・ウィンドウ（５０２）をさらに表示しうる。代替的に、ユーザは、表示Ａ（４０２）及び表示Ｂ（４０３）中に表示されているソースコードから目的とする機能単位をクリックで選択して、特定の機能単位を指定することが可能である。
【０１４８】
ユーザは、ポップアップ・ウィンドウ（５０１）内に特定の機能単位である「baz」を入力し、且つ、ポップアップ・ウィンドウ（５０２）中の「or」をクリックで又はパネルタッチで選択したとする。代替的に、ユーザは、ポップアップ・ウィンドウ（５０１）内に、検索条件である「or」と特定の機能単位である「baz」を入力（例えば、「or baz」と入力）したとする。抽出手段（２０３）が、上記入力に応じて、記憶手段（２０６）に格納されている上記特定のファイルについての変更履歴データの全てからユーザによって特定された機能単位である「baz」を含む変更履歴データをさらに抽出する。そして、抽出手段（２０３）は、当該抽出した変更履歴データと変更履歴データ・リスト（３１２）中の変更履歴データとを「or」条件で結合する。当該結合した結果は、変更履歴データ・リスト（３４２）に示す通りである。図５Ｂに示す変更履歴データ・リスト（３４２）は、図３Ｅに示す変更履歴データ・リスト（３４２）と同じである。そして、表示制御手段（２０４）は、変更履歴データ・リスト（３１２）の表示を変更履歴データ・リスト（３４２）の表示に置き換える。
【０１４９】
上記例では、ユーザによって特定された機能単位である「baz」で、記憶手段（２０６）に格納されている上記特定のファイルについての変更履歴データの全てから、バージョン番号が７，１２及び２１を有する変更履歴データが抽出され、そして当該抽出された変更履歴データ（バージョン番号が７、１２及び２１を有する）と変更履歴データ・リスト中の変更履歴データ（１４，１５，１７，１９及び２４）とが結合されている。抽出後の表示Ａ（４０２）では、抽出前に表示していたソースコードに対応し且つバージョン番号１９を有する変更履歴データが、変更履歴データ・リスト（３４２）中にあるので、表示Ａ（４０２）に表示されているソースコードは変更されない。また、抽出後の表示Ｂ（４０３）では、抽出前に表示していたソースコードに対応し且つバージョン番号１７を有する変更履歴データが、変更履歴データ・リスト（３３２）中にあるので、表示Ｂ（４０３）に表示されているソースコードは変更されない。
【０１５０】
表示制御手段（２０４）は、表示Ａ（４０２）に表示されているソースコードを、上記「baz」での抽出後において、「戻す」というボタン操作が行われることに応じて、バージョン番号が２４，２１，１９，１７，１５，１４及び１２の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能であり、逆に、「進める」というボタン操作が行われることに応じて、バージョン番号が１２，１４，１５，１７，１９，２１及び２４の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能である。また、表示制御手段（２０４）は、表示Ｂ（４０３）に表示されているソースコードを、上記「baz」での抽出後において、「戻す」というボタン操作が行われることに応じて、バージョン番号が２１，１９，１７，１５，１４，１２及び７の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能であり、逆に、「進める」というボタン操作が行われることに応じて、バージョン番号が７，１２，１４，１５，１７，１９及び２１の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能である。
【０１５１】
図５Ｃは、本発明の一つの実施態様に従い、グラフィカル・ユーザ・インターフェース上で、特定の機能単位が別の特定の機能単位の別の名前であるという指定をユーザが行うことを可能にし、且つ、変更履歴データのうちから、当該ユーザによって指定された機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データの一覧を表示する例を示す。
表示装置（２０５）は、ウィンドウ（５１１）と特定のファイルについての変更履歴データ・リスト（３１２）を表示している。ウィンドウ（５１１）は、表示Ａ（５１２）及び表示Ｂ（５１３）という２つの表示を有している。また、図５Ｂに示す変更履歴データ・リスト（３１２）は、図３Ｂに示す変更履歴データ・リスト（３１２）と同じである。
【０１５２】
表示制御装置（２０４）は、表示Ａ（５１２）に、変更履歴データ・リスト（３１２）中のバージョン番号が１９である変更履歴データに対応するソースコードを表示しているとする。また、表示制御装置（２０４）は、表示Ｂ（５１３）に、変更履歴データ・リスト（３１２）中のバージョン番号が１７である変更履歴データに対応するソースコードを表示しているとする。
【０１５３】
表示Ａ（５１２）はバージョン番号が１９である変更履歴データに対応するソースコードを表示し、且つ、表示Ｂ（５１３）はバージョン番号が１７である第２のバージョンを有する変更履歴データに対応するソースコードを表示している。従って、表示Ａ（５１２）中に表示されているソースコードは、表示Ｂ（５１３）中に表示されているソースコードが編集された後のソースコードであることがわかる。従って、ユーザは、表示Ａ（５１２）中の点線部（５１４）と表示Ｂ（５１１）中の表示部（５１５）とを見比べることによって、表示Ａ（５１２）中の「foobar」は、表示Ｂ（５１３）中の「foo」が「foobar」に訂正されたものであることを知る。すなわち、表示Ａ（５１２）における機能単位「foobar」が、表示Ｂ（５１３）では「foo」であったことがわかる。
【０１５４】
ユーザは、表示Ｂ（５１３）中の「foo」が表示Ａ（５１２）中の「foobar」の別の名前である機能単位であるとみなして、変更履歴データ（３１２）を更新したいとする。そこで、ユーザは、表示Ｂ（５１３）中の「foo」が表示Ａ（５１２）中の「foobar」の別の名前であるという指定をするために、表示Ｂ（５１３）中の「foo」を例えば左クリックでドラッグして「foo」全体を選択し、次に、表示Ａ（５１２）中の「foobar」を例えば同様に左クリックでドラッグして「foobar」全体を選択する。代替的には、ユーザは、メニュー・コマンドからポップアップ・ウィンドウを表示させるメニューを選択する。当該選択によって、表示制御手段（２０４）は、ポップアップ・ウィンドウ（図示せず）を表示装置（２０５）上に表示する。ユーザは、当該ポップアップ・ウィンドウ内に、表示Ｂ（５１３）中の「foo」が表示Ａ（５１２）中の「foobar」の別の名前であることを、条件式を用いて指定する。
【０１５５】
抽出手段（２０３）は、表示Ｂ（５１３）中の「foo」が表示Ａ（５１２）中の「foobar」の別の名前であるという指定に応じて、記憶手段（２０６）に格納されている上記特定のファイルについての変更履歴データの全てからユーザによって特定された機能単位である「foo」を含む変更履歴データを抽出する。そして、抽出手段（２０３）は、変更履歴データ・リスト（３１２）中の変更履歴データと、上記抽出された「foo」を含む変更履歴データとを「or」条件で結合する。当該結合した結果は、変更履歴データ・リスト（３６２）に示す通りである。図５Ｃに示す変更履歴データ・リスト（３６２）は、図３Ｇに示す変更履歴データ・リスト（３６２）と同じである。そして、表示制御手段（２０４）は、変更履歴データ・リスト（３１２）の表示を変更履歴データ・リスト（３６２）の表示に置き換える。
【０１５６】
上記例では、表示Ｂ（５１３）中の「foo」（５１５）が表示Ａ（５１２）中の「foobar」（５１４）の別の名前であるという指定に応じて、記憶手段（２０６）に格納されている上記特定のファイルについての変更履歴データの全てから、バージョン番号が３，５，６，７及び１３を有する変更履歴データが抽出され、そして当該抽出された変更履歴データ（バージョン番号が３，５，６，７及び１３を有する）と変更履歴データ・リスト中の変更履歴データ（１４，１５，１７，１９及び２４）とが結合されている。抽出後の表示Ａ（５１２）では、抽出前に表示していたソースコードに対応し且つバージョン番号１９を有する変更履歴データが、変更履歴データ・リスト（３６２）中にあるので、表示Ａ（５１２）に表示されているソースコードは変更されない。また、抽出後の表示Ｂ（５１３）では、抽出前に表示していたソースコードに対応し且つバージョン番号１７を有する変更履歴データが、変更履歴データ・リスト（３６２）中にあるので、表示Ｂ（５１３）に表示されているソースコードは変更されない。
【０１５７】
表示制御手段（２０４）は、表示Ａ（５１２）に表示されているソースコードを、上記結合後において、「戻す」というボタン操作が行われることに応じて、バージョン番号が２４，１９，１７，１５，１４，１３，７，６及び５の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能であり、逆に、「進める」というボタン操作が行われることに応じて、バージョン番号が５，６，７，１３，１４，１５，１７，１９及び２４の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能である。また、表示制御手段（２０４）は、表示Ｂ（５１３）に表示されているソースコードを、上記結合後において、「戻す」というボタン操作が行われることに応じて、バージョン番号が１９，１７，１５，１４，１３，７，６，５及び３の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能であり、逆に、「進める」というボタン操作が行われることに応じて、バージョン番号が３，５，６，７，１３，１４，１５，１７及び１９の順に、当該バージョン番号に対応するソースコードを表示するというナビゲーションをすることが可能である。
【０１５８】
上記では、表示Ｂ（５１３）中の「foo」が表示Ａ（５１２）中の「foobar」の別の名前であるという指定をユーザが行う態様を説明した。代替的に、抽出手段（２０３）は、表示Ｂ（５１３）中の「foo」が表示Ａ（５１２）中の「foobar」の別の名前であることを記憶手段（２０６）に記憶されている機能単位テーブル（図示せず）から判定しうる。機能単位テーブルは、ある特定の機能単位（例えば、上記「foo」）が、別の特定の機能単位（例えば、上記「foobar」）と同値であることを定義するリストでありうる。表示制御手段（２０４）が表示Ｂ（５１３）中の「foo」が表示Ａ（５１２）中の「foobar」の別の名前であることを上記機能単位テーブルを使用しても判別できない場合に、表示制御手段（２０４）は、上記したとおり、ユーザが手動で上記指定をすることを可能にしうる。
【０１５９】
以下に、本発明の一つの実施態様に従い、２つの異なるバージョン番号を有する変更履歴データそれぞれに対応するソースコードを表示装置上に表示し、各変更履歴に対応するソースコードの表示をバージョンに従い進めたり又は戻したりする例について、図６Ａ〜図６Ｃに示す例を参照しながら説明する。
【０１６０】
図６Ａは、本発明の一つの実施態様に従い、２つの異なるバージョン番号を有する変更履歴データそれぞれに対応するソースコードを表示装置上に表示し、各変更履歴に対応するソースコードの表示をバージョンに従い進めたり又は戻したりする例を示す。
表示装置（２０５）は、ウィンドウ（６０１）を表示している。ウィンドウ（６０１）は、表示Ａ（６０２）及び表示Ｂ（６０３）という２つの表示を有している。なお、図６Ａでは、変更履歴データ・リストを表示していないが、表示装置（２０５）は、任意的に、変更履歴データ・リストを表示しうる。
【０１６１】
特定のファイルについての変更履歴データ・リスト上に、バージョン番号が２，４，６及び７である各変更履歴データが存在し、バージョン番号が３及び５である各変更履歴データが存在しないものとする。また、表示Ａ（６０２）は、バージョン番号が６である変更履歴データに対応するソースコードを表示し、且つ、表示Ｂ（６０３）は、バージョン番号が４である変更履歴データに対応するソースコードを表示しているとする。表示Ａ（６０２）中に表示されているソースコードと表示Ｂ（６０３）中に表示されているソースコードとの相違部分が、符号６０４及び符号６０５に示すようにそれぞれ点線で囲んで強調表示されており、及び、任意的に表示Ａ（６０２）中の点線部（６０４）と表示Ｂ（６０３）の点線部（６０５）とが点線で結びつけられて強調表示されている。
【０１６２】
ユーザは、ボタン（４２２）を例えば左クリックしたとする。表示制御手段（２０４）は、ボタン（４２２）がクリックされることによって、表示Ａ（６０２）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ新しい（すなわち後の）バージョン番号を有する変更履歴データに対応するソースコードに表示を変更し、且つ、表示Ｂ（６０３）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ新しい（すなわち後の）バージョン番号を有する変更履歴データに対応するソースコードに表示を変更する。すなわち、表示制御手段（２０４）は、ウィンドウ（６１１）に示すように、表示Ａ（６１２）において、バージョン番号６よりも一つ新しいバージョン番号７を有する変更履歴データに対応するソースコードを表示し、且つ、表示Ｂ（６１３）において、バージョン番号４よりも一つ新しいバージョン番号６を有する変更履歴データに対応するソースコードを表示する。また、表示制御手段（２０４）は、表示Ａ（６１２）中に表示されているソースコードと表示Ｂ（６１３）中に表示されているソースコードとの相違部分を、符号６１４及び符号６１５に示すようにそれぞれ例えば点線で囲んで強調表示し、及び、任意的に表示Ａ（６１２）中の点線部（６１４）と表示Ｂ（６１３）の点線部（６１５）を例えば点線で結びつけて強調表示しうる。
【０１６３】
ユーザは、ボタン（４２３）を例えば左クリックしたとする。表示制御手段（２０４）は、ボタン（４２３）がクリックされることによって、表示Ａ（６０２）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ古いバージョン番号を有する変更履歴データに対応するソースコードに表示を変更し、且つ、表示Ｂ（６０３）に表示されているソースコードから、当該ソースコードに対応する変更履歴データのバージョン番号よりも１つ古いバージョン番号を有する変更履歴データに対応するソースコードに表示を変更する。すなわち、表示制御手段（２０４）は、ウィンドウ（６２１）に示すように、表示Ａ（６２２）において、バージョン番号６よりも一つ古いバージョン番号４を有する変更履歴データに対応するソースコードを表示し、且つ、表示Ｂ（６１３）において、バージョン番号４よりも一つ古いバージョン番号２を有する変更履歴データに対応するソースコードを表示する。また、表示制御手段（２０４）は、表示Ａ（６２２）中に表示されているソースコードと表示Ｂ（６２３）中に表示されているソースコードとの相違部分を、符号６２４及び符号６２５に示すようにそれぞれ例えば点線で囲んで強調表示し、及び、任意的に表示Ａ（６２２）中の点線部（６２４）と表示Ｂ（６２３）の点線部（６２５）を例えば点線で結びつけて強調表示しうる。
【０１６４】
図６Ｂは、本発明の一つの実施態様に従い、２つの異なるバージョン番号を有する変更履歴データそれぞれに対応するソースコードを表示装置上に表示し、一方の変更履歴データに対応するソースコードの表示を固定し、他方の変更履歴データに対応するソースコードの表示をバージョンに従い進めたり又は戻したりする例を示す。
表示装置（２０５）は、ウィンドウ（６３１）を表示している。ウィンドウ（６３１）は、表示Ａ（６３２）及び表示Ｂ（６３３）という２つの表示を有している。なお、図６Ｂでは、変更履歴データ・リストを表示していないが、表示装置（２０５）は、任意的に、変更履歴データ・リストを表示しうる。
【０１６５】
特定のファイルについての変更履歴データ・リスト上に、バージョン番号が２，４，６，７及び８である各変更履歴データが存在し、バージョン番号が３及び５である各変更履歴データが存在しないものとする。また、表示Ａ（６３２）は、バージョン番号が７である変更履歴データに対応するソースコードを表示し、且つ、表示Ｂ（６３３）は、バージョン番号が４である変更履歴データに対応するソースコードを表示しているとする。表示Ａ（６３２）中に表示されているソースコードと表示Ｂ（６３３）中に表示されているソースコードとの相違部分が、符号６３４及び符号６３５に示すようにそれぞれ点線で囲んで強調表示されており、及び、任意的に表示Ａ（６３２）中の点線部（６３４）と表示Ｂ（６３３）の点線部（６３５）とが点線で結びつけられて強調表示されている。
【０１６６】
ユーザは、表示Ａ（６３２）に関連付けられたピン（４３１）を例えば左クリックし、次に、ボタン（４２２）を例えば左クリックしたとする。
【０１６７】
表示制御手段（２０４）は、ピン（４３１）がクリックされることに応じて、表示Ａ（６３２）に表示されているソースコードの表示を固定する。次に、表示制御手段（２０４）は、ボタン（４２２）がクリックされることに応じて、ウィンドウ（６４１）に示すように、表示Ａ（６４２）に表示されているソースコードの表示を変更せず、且つ、表示Ｂ（６４３）において、バージョン番号４よりも一つ新しいバージョン番号６を有する変更履歴データに対応するソースコードを表示する。また、表示制御手段（２０４）は、表示Ａ（６４２）中に表示されているソースコードと表示Ｂ（６４３）中に表示されているソースコードとの相違部分を、符号６４４及び符号６４５に示すようにそれぞれ例えば点線で囲んで強調表示し、及び、任意的に表示Ａ（６４２）中の点線部（６４４）と表示Ｂ（６４３）の点線部（６４５）を例えば点線で結びつけて強調表示しうる。
【０１６８】
ユーザは、表示Ａ（６３２）に関連付けられたピン（４３１）を例えば左クリックし、次に、ボタン（４２３）を例えば左クリックしたとする。
【０１６９】
表示制御手段（２０４）は、ピン（４３１）がクリックされることに応じて、表示Ａ（６３２）に表示されているソースコードの表示を固定する。次に、表示制御手段（２０４）は、ボタン（４２２）がクリックされることに応じて、ウィンドウ（６５１）に示すように、表示Ａ（６５２）に表示されているソースコードの表示を変更せず、且つ、表示Ｂ（６５３）において、バージョン番号４よりも一つ古いバージョン番号２を有する変更履歴データに対応するソースコードを表示する。また、表示制御手段（２０４）は、表示Ａ（６５２）中に表示されているソースコードと表示Ｂ（６５３）中に表示されているソースコードとの相違部分を、符号６５４及び符号６５５に示すようにそれぞれ例えば点線で囲んで強調表示し、及び、任意的に表示Ａ（６５２）中の点線部（６５４）と表示Ｂ（６５３）の点線部（６５５）を例えば点線で結びつけて強調表示しうる。
【０１７０】
図６Ｃは、本発明の一つの実施態様に従い、２つの異なるバージョン番号を有する変更履歴データそれぞれに対応するソースコードを表示装置上に表示し、各変更履歴に対応するソースコードの表示をバージョンに従い進めたり又は戻したりする例を示す。
表示装置（２０５）は、ウィンドウ（６６１）を表示している。ウィンドウ（６６１）は、表示Ａ（６６２）及び表示Ｂ（６６３）という２つの表示を有している。なお、図６Ｃでは、変更履歴データ・リストを表示していないが、表示装置（２０５）は、任意的に、変更履歴データ・リストを表示しうる。
【０１７１】
特定のファイルについての変更履歴データ・リスト上に、機能単位「bar」を含む各変更履歴データ（バージョン番号が６及び８である）が存在し、且つ、機能単位「bar」の別の名前であるとしてユーザによって指定された「foo」を含む各変更履歴データ（バージョン番号が２及び４である）がさらに存在し、バージョン番号が３、５及び７である各変更履歴データが存在しないものとする。また、表示Ａ（６６２）は、バージョン番号が６である変更履歴データに対応するソースコードを表示し、且つ、表示Ｂ（６６３）は、バージョン番号が４である変更履歴データに対応するソースコードを表示しているとする。表示Ａ（６６２）中に表示されているソースコードと表示Ｂ（６６３）中に表示されているソースコードとの相違部分が、符号６６４及び符号６６５に示すようにそれぞれ点線で囲んで強調表示されており、及び、任意的に表示Ａ（６６２）中の点線部（６６４）と表示Ｂ（６６３）の点線部（６６５）とが点線で結びつけられて強調表示されている。
【０１７２】
ユーザは、ボタン（４２２）を例えば左クリックしたとする。表示制御手段（２０４）は、ボタン（４２２）がクリックされることによって、ウィンドウ（６７１）に示すように、表示Ａ（６７２）において、バージョン番号６よりも一つ新しいバージョン番号８を有する変更履歴データに対応するソースコードを表示し、且つ、表示Ｂ（６７３）において、バージョン番号４よりも一つ新しいバージョン番号６を有する変更履歴データに対応するソースコードを表示する。また、表示制御手段（２０４）は、表示Ａ（６７２）中に表示されているソースコードと表示Ｂ（６７３）中に表示されているソースコードとの相違部分を、符号６７４及び符号６７５に示すようにそれぞれ例えば点線で囲んで強調表示し、及び、任意的に表示Ａ（６７２）中の点線部（６７４）と表示Ｂ（６７３）の点線部（６７５）を例えば点線で結びつけて強調表示しうる。
【０１７３】
ユーザは、ボタン（４２３）を例えば左クリックしたとする。表示制御手段（２０４）は、ボタン（４２３）がクリックされることによって、ウィンドウ（６８１）に示すように、表示Ａ（６８２）において、バージョン番号６よりも一つ古いバージョン番号４を有する変更履歴データに対応するソースコードを表示し、且つ、表示Ｂ（６８３）において、バージョン番号４よりも一つ古いバージョン番号２を有する変更履歴データに対応するソースコードを表示する。また、表示制御手段（２０４）は、表示Ａ（６８２）中に表示されているソースコードと表示Ｂ（６８３）中に表示されているソースコードとの相違部分を、符号６８４及び符号６８５に示すようにそれぞれ例えば点線で囲んで強調表示し、及び、任意的に表示Ａ（６８２）中の点線部（６８４）と表示Ｂ（６８３）の点線部（６８５）を例えば点線で結びつけて強調表示しうる。
【０１７４】
図７は、本発明の一つの実施態様に従い、特定のファイルについての複数の変更履歴データのうちからユーザによって特定された機能単位を含む変更履歴データを抽出し、当該抽出された変更履歴データの一覧を表示し又は作成し、当該一覧のうちの少なくとも２つの異なる変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報を表示する処理のためのフローチャートを示す。
ステップ７０１では、コンピュータ（１０１）は、上記処理を開始する。
【０１７５】
ステップ７０２では、入力手段（２０１）は、ユーザから、変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報を表示する対象である特定のファイルの名前、及び、任意的に、機能単位の特定を含む条件式の入力を受信する。代替的に、入力手段（２０１）がステップ７０２において条件式を受信する代わりに、下記ステップ７０４において、上記特定のファイルについての変更履歴データが存在することが確認されたことに応じて、上記条件式の入力が入力手段（２０１）を介して可能なようにされてもよい。
【０１７６】
ステップ７０３では、抽出手段（２０３）は、上記特定のファイルの名前及び、任意的に、上記条件式の受信に応じて、抽出手段（２０３）は、上記ユーザが入力した特定のファイルについての変更履歴データを要求する。
【０１７７】
ステップ７０４では、抽出手段（２０３）は、上記特定のファイルについての変更履歴データが記憶手段（２０６）内に存在する場合に処理をステップ７０５に進める。一方、抽出手段（２０３）は、上記変更履歴データが記憶手段（２０６）内に存在しない場合に処理をエラー出力であるステップ７０６に進める。
【０１７８】
ステップ７０５では、抽出手段（２０３）は、上記変更履歴データが記憶手段（２０６）内に存在することに応じて、上記変更履歴データ（図２Ｂを参照）の全てを記憶手段（２０６）から取得する。
【０１７９】
ステップ７０６では、表示制御手段（２０４）は、上記変更履歴データが記憶手段（２０６）内に存在しないことに応じて、上記変更履歴データ（図２Ｂを参照）を取得できないために上記処理を実行できない旨のエラーメッセージを表示装置（２０５）上に表示しうる。
【０１８０】
ステップ７０７では、抽出手段（２０３）は、上記取得した変更履歴データの全てから、上記ユーザが入力した機能単位（特許請求の範囲に記載の「第１の機能単位」に対応する）を含む変更履歴データ（特許請求の範囲に記載の「第１の変更履歴データ」に対応する）を抽出する。
【０１８１】
ステップ７０８では、表示制御手段（２０４）は、上記抽出した第１の変更履歴データの一覧（特許請求の範囲に記載の「第１の一覧」に対応する）（２１３）を記憶手段（２０６）内に作成する。代替的に、表示制御手段（２０４）は、上記抽出した第１の変更履歴データの第１の一覧（２１３）を表示装置（２０５）上に表示する（例えば、図３Ｂの変更履歴データ・リスト（３１１）及び同図の変更履歴データ・リスト（３１２）を参照）。
【０１８２】
ステップ７０９では、表示制御手段（２０４）は、上記第１の一覧のうちの少なくも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を表示装置（２０５）上に表示する（例えば、図４Ａの表示Ａ（４０２）及び表示Ｂ（４０３）を参照）。
【０１８３】
ステップ７１０では、表示制御手段（２０４）は、上記処理の終了を指示する旨を受信することに応じて、当該処理を終了する。
【０１８４】
図８Ａ及び図８Ｂは、図７に示すフローチャートに従い抽出された変更履歴データに対してさらに処理をして、変更履歴データのリストを動的に更新する処理のためのフローチャートを示す。
ステップ８０１では、コンピュータ（１０１）は、上記動的に更新する処理を開始する。
【０１８５】
ステップ８０２では、入力手段（２０１）が、ユーザから入力を受信する。抽出手段（２０３）は、ユーザから受信した上記入力が図７に示すステップ７０７において抽出された第１の変更履歴データ・リスト中の変更履歴データに対する変更要求であるかどうかを判断する。当該変更要求は、上記第１の機能単位と異なる機能単位（特許請求の範囲に記載の「第２の機能単位」に対応する）の特定を含む条件式を有しうる。抽出手段（２０３）は、上記受信した入力が上記第１の変更履歴データ・リスト中の変更履歴データに対する変更要求であることに応じて、処理をステップ８０３に進める。一方、抽出手段（２０３）は、上記受信した入力が上記第１の変更履歴データ・リスト中の変更履歴データに対する変更要求でないことに応じて、上記動的に更新する処理を終了する（ステップ８１１）。
【０１８６】
ステップ８０３では、抽出手段（２０３）は、受信した入力が上記第１の変更履歴データ・リスト中の変更履歴データに対する変更要求、図８Ａに示すステップ８０７において抽出された変更履歴データに対する変更要求、又は図８Ｂに示すステップ８２３で組み合わせられた変更履歴データに対する変更要求のいずれかであることに応じて、上記変更要求が上記特定のファイルについての変更履歴データの全てを対象とするものであるかどうかを判断する。例えば、抽出手段（２０３）は、上記変更要求中の条件式が「or」を含む場合には、上記変更要求が、上記特定のファイルについての変更履歴データの全てを対象とするものであると判断しうる。一方、抽出手段（２０３）は、上記変更要求中の条件式が「and」を含む場合には、上記変更要求が、上記特定のファイルについての変更履歴データの全てを対象とするものでないと判断しうる。抽出手段（２０３）は、上記変更要求が、上記特定のファイルについての変更履歴データの全てを対象とするものであることに応じて、処理を図８Ｂに示すステップ８２１に進める。一方、抽出手段（２０３）は、上記変更要求が上記特定のファイルについての変更履歴データの全てを対象とするものでないことに応じて、処理をステップ８０４に進める。
【０１８７】
ステップ８０４では、抽出手段（２０３）は、上記変更要求が、上記第１の変更履歴データ、ステップ８０７において抽出された変更履歴データ、又はステップ８２３で組み合わせられた変更履歴データを対象とするものであるかどうかを判断する。例えば、抽出手段（２０３）は、上記変更要求中の条件式が「and」である場合には、上記変更要求が上記第１の変更履歴データを対象とするものであると判断しうる。抽出手段（２０３）は、上記変更要求が上記第１の変更履歴データ、ステップ８０７において抽出された変更履歴データ、又はステップ８２３で組み合わせられた変更履歴データを対象とするものであることに応じて、処理をステップ８０５に進める。一方、抽出手段（２０３）は、上記変更要求が上記第１の変更履歴データ、上記ステップ８０７において抽出された変更履歴データ、及び上記ステップ８２３で組み合わせられた変更履歴データを対象とするものでないことに応じて、処理をエラー出力であるステップ８０６に進める。
【０１８８】
ステップ８０５では、抽出手段（２０３）は、上記変更要求がステップ８０４で特定された変更履歴データであることに応じて、当該ステップ８０４で特定された上記第１の変更履歴データ、上記ステップ８０７において抽出された変更履歴データ、又は上記ステップ８２３で組み合わせられた変更履歴データのうちのいずれかの変更履歴データの全てを記憶手段（２０６）から取得する。
【０１８９】
ステップ８０６では、表示制御手段（２０４）は、上記変更要求が上記第１の変更履歴データ、ステップ８０７において抽出された変更履歴データ、及びステップ８２３で組み合わせられた変更履歴データを対象とするものでないことに応じて、上記変更要求を実行することができない旨又は変更要求が適切でない旨のエラーメッセージを表示装置（２０５）上に表示しうる。
【０１９０】
ステップ８０７では、抽出手段（２０３）は、上記取得した各変更履歴データの全てから、上記ユーザが入力した機能単位を含む変更履歴データを抽出する。ステップ８０５で特定された変更履歴データが第１の変更履歴データである場合、抽出手段（２０３）は、当該取得した第１の変更履歴データの全てから、上記ユーザが入力した第２の機能単位を含む変更履歴データ（特許請求の範囲に記載の「第２の変更履歴データ」に対応する）を抽出する。
【０１９１】
ステップ８０８では、表示制御手段（２０４）は、ステップ８０７において抽出された変更履歴データの一覧（２１３）を記憶手段（２０６）内に作成する。代替的に、表示制御手段（２０４）は、ステップ８０７において抽出された上記変更履歴データの一覧（２１３）を表示装置（２０５）上に表示する。ステップ８０５で特定された変更履歴データが第１の変更履歴データである場合、表示制御手段（２０４）は、ステップ８０７において抽出された第２の変更履歴データの一覧（特許請求の範囲に記載の「第２の一覧」に対応する）（２１３）を記憶手段（２０６）内に作成する。代替的に、表示制御手段（２０４）は、上記抽出した第２の変更履歴データの第２の一覧（２１３）を表示装置（２０５）上に表示する（例えば、図３Ｄの変更履歴データ・リスト（３３１）及び同図の変更履歴データ・リスト（３３２）、並びに、図５Ａの変更履歴データ・リスト（３３２）を参照）。
【０１９２】
ステップ８０９では、表示制御手段（２０４）は、ステップ８０８で作成された一覧のうちの少なくも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を表示装置（２０５）上に表示する。ステップ８０５で特定された変更履歴データが第１の変更履歴データである場合、表示制御手段（２０４）は、上記第２の一覧のうちの少なくも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を表示装置（２０５）上に表示する（例えば、図５Ａの表示Ａ（４０２）及び表示Ｂ（４０３）を参照）。
【０１９３】
ステップ８１０では、入力手段（２０１）が、ユーザから入力を受信する。抽出手段（２０３）は、ユーザから受信した上記入力がステップ８０７において抽出された変更履歴データ・リスト中の変更履歴データに対する変更要求であるかどうかを判断する。当該変更要求は、図７のステップ７０７において特定された第１の機能単位及びステップ８０７において特定された機能単位と異なる機能単位の特定を含む条件式を有しうる。抽出手段（２０３）は、上記受信した入力がステップ８０７で抽出された変更履歴データ・リスト中の変更履歴データに対する変更要求であることに応じて、処理をステップ８０３に戻す。一方、抽出手段（２０３）は、上記受信した入力がステップ８０７で抽出された変更履歴データ・リスト中の変更履歴データに対する変更要求でないことに応じて、上記動的に更新する処理を終了する（ステップ８１１）。ステップ８０５で特定された変更履歴データが第１の変更履歴データである場合、抽出手段（２０３）は、ユーザから受信した上記入力がステップ８０７において抽出された第２の変更履歴データ・リスト中の変更履歴データに対する変更要求であるかどうかを判断する。当該変更要求は、上記第１の機能単位及び上記第２の機能単位と異なる機能単位（以下、「第３の機能単位」ともいう）の特定を含む条件式を有しうる。抽出手段（２０３）は、上記受信した入力が上記第２の変更履歴データ・リスト中の変更履歴データに対する変更要求であることに応じて、処理をステップ８０３に戻す。一方、抽出手段（２０３）は、上記受信した入力が上記第２の変更履歴データ・リスト中の変更履歴データに対する変更要求でないことに応じて、上記動的に更新する処理を終了する（ステップ８１１）。
【０１９４】
ステップ８２１では、抽出手段（２０３）は、ステップ８０３で受信した変更要求が上記特定のファイルについての変更履歴データの全てを対象とするものであることに応じて、上記変更履歴データ（図２Ｂを参照）の全てを記憶手段（２０６）から取得する。なお、ステップ７０５において同じ処理が行われているので、抽出手段（２０３）は、ステップ７０５において取得した変更履歴データがメモリ内にある場合には、当該ステップ８２１を省略することが可能である。
【０１９５】
ステップ８２２では、抽出手段（２０３）は、ステップ８２１で取得した変更履歴データの全てから、上記ユーザが入力した機能単位（特許請求の範囲に記載の「第２の機能単位」に対応する）を含む変更履歴データ（特許請求の範囲に記載の「第３の変更履歴データ」に対応する）を抽出する。
【０１９６】
ステップ８２３では、表示制御手段（２０４）は、ステップ８２２において抽出された第３の変更履歴データと、図７のステップ７０７において抽出された第１の変更履歴データとを組み合わせる。すなわち、表示制御手段（２０４）は、図７のステップ７０７において抽出された第１の変更履歴データに、ステップ８２２において抽出された第３の変更履歴データを追加する。
【０１９７】
ステップ８２４では、表示制御手段（２０４）は、ステップ８２３で組み合わせた変更履歴データ（以下、「第４の変更履歴データ」ともいう）の一覧（特許請求の範囲に記載の「第３の一覧」に対応する）（２１３）を記憶手段（２０６）内に作成する。代替的に、表示制御手段（２０４）は、上記第４の変更履歴データの第３の一覧（２１３）を表示装置（２０５）上に表示する（例えば、図３Ｅの変更履歴データ・リスト（３４１）及び同図の変更履歴データ・リスト（３４２）、並びに、図５Ｂの変更履歴データ・リスト（３４２）を参照）。
【０１９８】
ステップ８２５では、表示制御手段（２０４）は、上記第３の一覧のうちの少なくも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を表示装置（２０５）上に表示する（例えば、図５Ｂの表示Ａ（４０２）及び表示Ｂ（４０３）を参照）。
【０１９９】
ステップ８２６では、入力手段（２０１）が、ユーザから入力を受信する。抽出手段（２０３）は、ユーザから受信した上記入力がステップ８２３において得られた上記第４の変更履歴データ・リスト中の変更履歴データに対する変更要求であるかどうかを判断する。当該変更要求は、図７のステップ７０７において特定された第１の機能単位及びステップ８２２において特定された第２の機能単位と異なる機能単位（以下、「第４の機能単位」ともいう）の特定を含む条件式を有しうる。抽出手段（２０３）は、上記受信した入力がステップ８２３において組み合わせた変更履歴データ・リスト（上記第３の変更履歴データ・リスト）中の変更履歴データに対する変更要求であることに応じて、処理をステップ８０３に戻す。一方、抽出手段（２０３）は、上記受信した入力がステップ８２３において組み合わせた変更履歴データ・リスト（上記第３の変更履歴データ・リスト）中の変更履歴データに対する変更要求でないことに応じて、上記動的に更新する処理を終了する（ステップ８１１）。
【０２００】
図８Ｃは、図７、図８Ａ及び図８Ｂに示す各フローチャートに従い抽出された変更履歴データに対して、ユーザによって指定された範囲のバージョン番号を有する変更履歴データを抽出する処理のためのフローチャートを示す。
図８Ａ及び図８Ｂに示す各フローチャートに従い抽出された変更履歴データとは、図７のステップ７０７において抽出された第１の変更履歴データ、図８Ａのステップ８０７において抽出された第２の変更履歴データ、及び、ステップ８２２において抽出された第３の変更履歴データでありうる。
【０２０１】
ステップ８３１では、コンピュータ（１０１）は、上記ユーザによって指定された範囲のバージョン番号を有する変更履歴データを抽出する処理を開始する。
【０２０２】
ステップ８３２では、入力手段（２０１）が、ユーザから入力を受信する。抽出手段（２０３）は、ユーザから受信した上記入力が上記第１，第２又は第３の変更履歴データ・リストに対して、ユーザによって指定された範囲のバージョン番号を有する変更履歴データを抽出する変更要求であるかどうかを判断する。当該変更要求は、変更履歴データが有するバージョン番号の指定範囲を含む条件式を有しうる。抽出手段（２０３）は、上記受信した入力が上記ユーザによって指定された範囲のバージョン番号を有する変更履歴データを抽出する変更要求であることに応じて、処理をステップ８３３に進める。一方、抽出手段（２０３）は、上記受信した入力が上記ユーザによって指定された範囲のバージョン番号を有する変更履歴データを抽出する変更要求でないことに応じて、上記ユーザによって指定された範囲のバージョン番号を有する変更履歴データを抽出する処理を終了する（ステップ８３７）。
【０２０３】
ステップ８３４では、抽出手段（２０３）は、上記受信した入力が上記ユーザによって指定された範囲のバージョン番号を有する変更履歴データを抽出する変更要求であることに応じて、上記変更要求の対象である第１，第２又は第３の変更履歴データ・リストから、上記ユーザによって指定された範囲のバージョン番号を有する変更履歴データを抽出する。
【０２０４】
ステップ８３５では、表示制御手段（２０４）は、上記抽出した変更履歴データ（以下、「第５の変更履歴データ」ともいう）の一覧（以下、「第４の一覧」ともいう）（２１３）を記憶手段（２０６）内に作成する。代替的に、表示制御手段（２０４）は、上記第５の変更履歴データの第４の一覧（２１３）を表示装置（２０５）上に表示する（例えば、図３Ｃの変更履歴データ・リスト（３２１）及び同図の変更履歴データ・リスト（３２２）、図３Ｆの変更履歴データ・リスト（３５１）及び同図の変更履歴データ・リスト（３５２）、並びに、図３Ｇの変更履歴データ・リスト（３６１）及び同図の変更履歴データ・リスト（３６２）を参照）。
【０２０５】
ステップ８３６では、表示制御手段（２０４）は、上記第４の一覧のうちの少なくも２つの異なる変更履歴データそれぞれに対応するソースコード又は当該ソースコードに関連付けられた情報を表示装置（２０５）上に表示する。
【０２０６】
ステップ８３７では、コンピュータ（１０１）は、上記ユーザによって指定された範囲のバージョン番号を有する変更履歴データを抽出する処理を終了する。
【０２０７】
以下に、図６Ａ〜図６Ｃに示す変更履歴データに対応する各ソースコードの表示を変更履歴データが有するバージョン番号に従い「進める」処理又は「戻す」処理それぞれを、図９Ａ及び図９Ｂに示すフローチャートに従い説明する。
【０２０８】
図９Ａは、図６Ａ〜図６Ｃに示す変更履歴データに対応する各ソースコードの表示を変更履歴データが有するバージョン番号に従い進める処理（以下、「進める処理」ともいう）のためのフローチャートを示す。
以下では、図４Ａに示すウィンドウ（４０１）及び当該ウィンドウ（４０１）中に含まれている表示Ａ（４０２）及び表示Ｂ（４０３）を参照しながら、上記進める処理を説明する。なお、便宜上、表示Ａ（４０２）が、表示Ｂ（４０３）よりも新しいバージョン番号を有する変更履歴データに対応するソースコードを表示するものとする。また、図４Ａでは、表示Ａ（４０２）がウィンドウ（４０１）の左側に示されており、且つ、表示Ｂ（４０３）がウィンドウ（４０１）の右側に示されているが、それとは逆に、表示Ａ（４０２）が右側に且つ表Ｂ（４０３）が左側に表示されていてもよい。
【０２０９】
ステップ９０１では、表示制御手段（２０４）は、上記進める処理を開始する。
【０２１０】
ステップ９０２では、表示制御手段（２０４）は、ウィンドウ（４０１）内の表示Ａ（４０２）内及び表示Ｂ（４０３）内それぞれに異なるバージョン番号を有する変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報（図９Ａにおいて、上記ソースコード及び上記情報をまとめて、「変更履歴データに対応する情報」と記す）を表示装置（２０５）上に表示するために、上記異なるバージョン番号を有する変更履歴データを取得する。
【０２１１】
ステップ９０３では、表示制御手段（２０４）は、上記取得した変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報を表示Ａ（４０２）及び表示Ｂ（４０３）にそれぞれ表示する。
【０２１２】
ステップ９０４では、表示制御手段（２０４）は、４つのボタン（４１１）のうちのボタン（４２１）が例えば左クリックされたことの信号を受信する。すなわち、表示制御手段（２０４）は、表示Ａ（４０２）及び表示Ｂ（４０３）に現在それぞれ表示されているソースコードに対応付けられている変更履歴データよりも一つ新しいバージョン番号を有する変更履歴データを表示Ａ（４０２）及び表示Ｂ（４０３）にそれぞれ表示するという要求を受信する。
【０２１３】
ステップ９０５では、表示制御手段（２０４）は、ピン（４３１）が表示Ａ（４０２）のために選択された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可しているかどうか（すなわち、表示Ａ（４０２）中のソースコードの表示を固定していないかどうか）を判断する。表示制御手段（２０４）は、表示Ａ（４０２）中のソースコードの表示が固定されていること（図４Ａのピン（４３１）のアイコン（４５２）を参照）に応じて、処理をステップ９０６に進める。一方、表示制御手段（２０４）は、表示Ａ（４０２）中のソースコードの表示が固定されていないこと（図４Ａのピン（４３１）のアイコン（４５１）を参照）に応じて、処理をステップ９０９に進める。
【０２１４】
ステップ９０６では、表示制御手段（２０４）は、表示Ａ（４０２）中に現在表示されているソースコードに対応する変更履歴データが変更履歴データ・リスト上の最新の変更履歴データであるかどうかを判断する。表示制御手段（２０４）は、上記最新の変更履歴データでないことに応じて、処理をステップ９０７に進める。一方、表示制御手段（２０４）は、表示Ａ（４０２）中に現在表示されているソースコードに対応する変更履歴データが最新の変更履歴データであることに応じて、処理をステップ９０９に進めて、表示Ｂ（４０３）のための処理（ステップ９０９〜９１２）を続ける。何故ならば、表示Ａ（４０２）中に現在表示されているソースコードに対応する変更履歴データが最新の変更履歴データであるので、当該最新の変更履歴データよりも新しいバージョン番号を有する変更履歴データが変更履歴データ・リスト上に存在しないためである。すなわち、現在表示されている最新のソースコードに対応する変更履歴データを当該最新の変更履歴データよりもさらに新しいバージョン番号を有する変更履歴データに進めることができないからである。
【０２１５】
ステップ９０７では、表示制御手段（２０４）は、上記最新の変更履歴データでないことに応じて、表示Ａ（４０２）中に現在表示されているソースコードに対応する変更履歴データよりも一つ新しいバージョン番号を有する変更履歴データに対応するソースコード又は当該ソースコードに対応する情報を記憶手段（２０６）から取得し、当該取得したソースコード又は当該ソースコードに対応する情報を表示Ａ（４０２）内で表示する。
【０２１６】
ステップ９０８では、表示制御手段（２０４）は、ステップ９０７において取得したソースコード又は当該ソースコードに対応する情報を表示Ａ（４０２）内に表示する。次に、表示制御手段（２０４）は、表示Ｂ（４０３）のための処理（ステップ９０９〜９１２）を続ける。
【０２１７】
ステップ９０９では、表示制御手段（２０４）は、ピン（４４１）が表示Ｂ（４０３）用に選択された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可しているかどうか（すなわち、表示Ｂ（４０３）中のソースコードの表示を固定していないかどうか）を判断する。表示制御手段（２０４）は、表示Ｂ（４０３）中のソースコードの表示が固定されていないこと（図４Ａのピン（４４１）のアイコン（４６１）を参照）に応じて、処理をステップ９１０に進める。一方、表示制御手段（２０４）は、表示Ｂ（４０３）中のソースコードの表示が固定されていること（図４Ａのピン（４３１）アイコン（４６２）を参照）に応じて、処理を終了ステップであるステップ９１３に進める。何故ならば、表示Ｂ（４０３）中のソースコードの表示を固定しているからである。
【０２１８】
ステップ９１０では、表示制御手段（２０４）は、表示Ｂ（４０３）中に現在表示されているソースコードに対応する変更履歴データが有するバージョン番号が表示Ａ（４０２）にこれから表示されるソースコードに対応する変更履歴データが有するバージョン番号よりも一つ古いバージョン番号であるかどうかを判断する。表示制御手段（２０４）は、上記一つ古いバージョン番号でないことに応じて、処理をステップ９１１に進める。一方、表示制御手段（２０４）は、上記一つ古いバージョン番号であることに応じて、処理を終了ステップであるステップ９１３に進める。何故ならば、表示Ｂ（４０３）中に現在表示されているソースコードに対応する変更履歴データが有するバージョン番号が表示Ａ（４０２）にこれから表示されるソースコードに対応する変更履歴データが有するバージョン番号よりも既に一つ古いバージョン番号であるからである。
【０２１９】
ステップ９１１は、表示制御手段（２０４）は、上記一つ古いバージョン番号でないことに応じて、表示Ｂ（４０３）中に現在表示されているソースコードに対応する変更履歴データが有するバージョン番号よりも一つ新しいバージョン番号を有する変更履歴データに対応するソースコード又は当該ソースコードに対応する情報を記憶手段（２０６）から取得し、当該取得したソースコード又は当該ソースコードに対応する情報を表示Ｂ（４０３）内で表示する。
【０２２０】
ステップ９１２では、表示制御手段（２０４）は、ステップ９１１において取得したソースコード又は当該ソースコードに対応する情報を表示Ｂ（４０３）内に表示する。
【０２２１】
ステップ９１３では、表示制御手段（２０４）は、上記進める処理を終了する。
【０２２２】
図９Ｂは、図６Ａ〜図６Ｃに示す変更履歴データに対応する各ソースコードの表示を変更履歴データが有するバージョン番号に従い戻す処理（以下、「戻す処理」ともいう）のためのフローチャートを示す。
以下では、図４Ａに示すウィンドウ（４０１）及び当該ウィンドウ（４０１）中に含まれている表示Ａ（４０２）及び表示Ｂ（４０３）を参照しながら、上記戻す処理を説明する。なお、便宜上、表示Ａ（４０２）が、表示Ｂ（４０３）よりも新しいバージョン番号を有する変更履歴データに対応するソースコードを表示するものとする。また、図４Ａでは、表示Ａ（４０２）がウィンドウ（４０１）の左側に示されており、且つ、表示Ｂ（４０３）がウィンドウ（４０１）の右側に示されているが、それとは逆に、表示Ａ（４０２）が右側に且つ表Ｂ（４０３）が左側に表示されていてもよい。
【０２２３】
ステップ９２１では、表示制御手段（２０４）は、上記戻す処理を開始する。
【０２２４】
ステップ９２２では、表示制御手段（２０４）は、ウィンドウ（４０１）内の表示Ａ（４０２）内及び表示Ｂ（４０３）内それぞれに異なるバージョン番号を有する変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報（図９Ｂにおいて、上記ソースコード及び上記情報をまとめて、「変更履歴データに対応する情報」と記す）を表示装置（２０５）上に表示するために、上記異なるバージョン番号を有する変更履歴データを取得する。
【０２２５】
ステップ９２３では、表示制御手段（２０４）は、上記取得した変更履歴データに対応するソースコード又は当該ソースコードに関連付けられた情報を表示Ａ（４０２）及び表示Ｂ（４０３）にそれぞれ表示する。
【０２２６】
ステップ９２４では、表示制御手段（２０４）は、４つのボタン（４１１）のうちのボタン（４２３）が例えば左クリックされたことの信号を受信する。すなわち、表示制御手段（２０４）は、表示Ａ（４０２）及び表示Ｂ（４０３）に現在それぞれ表示されているソースコードに対応付けられている変更履歴データよりも一つ古いバージョン番号を有する変更履歴データを表示Ａ（４０２）及び表示Ｂ（４０３）にそれぞれ表示するという要求を受信する。
【０２２７】
ステップ９２５では、表示制御手段（２０４）は、ピン（４３１）が表示Ｂ（４０３）のために選択された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可しているかどうか（すなわち、表示Ｂ（４０３）中のソースコードの表示を固定していないかどうか）を判断する。表示制御手段（２０４）は、表示Ｂ（４０３）中のソースコードの表示が固定されていないこと（図４Ａのピン（４４１）のアイコン（４６１）を参照）に応じて、処理をステップ９２６に進める。一方、表示制御手段（２０４）は、表示Ａ（４０２）中のソースコードの表示が固定されていること（図４Ａのピン（４４１）アイコン（４６２）を参照）に応じて、処理をステップ９２９に進める。
【０２２８】
ステップ９２６では、表示制御手段（２０４）は、表示Ｂ（４０３）中に現在表示されているソースコードに対応する変更履歴データが変更履歴データ・リスト上の最古の変更履歴データであるかどうかを判断する。表示制御手段（２０４）は、上記最古の変更履歴データでないことに応じて、処理をステップ９２７に進める。一方、表示制御手段（２０４）は、表示Ｂ（４０３）中に現在表示されているソースコードに対応する変更履歴データが最古の変更履歴データであることに応じて、処理をステップ９２９に進めて、表示Ａ（４０２）のための処理（ステップ９２９〜９３２）を続ける。何故ならば、表示Ｂ（４０３）中に現在表示されているソースコードに対応する変更履歴データが最古の変更履歴データであるので、当該最古の変更履歴データよりも古いバージョン番号を有する変更履歴データが変更履歴データ・リスト上に存在しないためである。すなわち、現在表示されている最古のソースコードに対応する変更履歴データを当該最古の変更履歴データよりもさらに古いバージョン番号を有する変更履歴データに戻すことができないからである。
【０２２９】
ステップ９２７では、表示制御手段（２０４）は、上記最古の変更履歴データでないことに応じて、表示Ｂ（４０３）中に現在表示されているソースコードに対応する変更履歴データよりも一つ古いバージョン番号を有する変更履歴データに対応するソースコード又は当該ソースコードに対応する情報を記憶手段（２０６）から取得し、当該取得したソースコード又は当該ソースコードに対応する情報を表示Ｂ（４０３）内で表示する。
【０２３０】
ステップ９２８では、表示制御手段（２０４）は、ステップ９２７において取得したソースコード又は当該ソースコードに対応する情報を表示Ｂ（４０３）内に表示する。次に、表示制御手段（２０４）は、表示Ａ（４０２）のための処理（ステップ９２９〜９３２）を続ける。
【０２３１】
ステップ９２９では、表示制御手段（２０４）は、ピン（４３１）が表示Ａ（４０２）用に選択された変更履歴データを他のバージョン番号を有する変更履歴データに変更することをユーザが許可しているかどうか（すなわち、表示Ａ（４０２）中のソースコードの表示を固定していないかどうか）を判断する。表示制御手段（２０４）は、表示Ａ（４０２）中のソースコードの表示が固定されていないこと（図４Ａのピン（４３１）のアイコン（４５１）を参照）に応じて、処理をステップ９３０に進める。一方、表示制御手段（２０４）は、表示Ｂ（４０３）中のソースコードの表示が固定されていること（図４Ａのピン（４３１）のアイコン（４５２）を参照）に応じて、処理を終了ステップであるステップ９３３に進める。何故ならば、表示Ａ（４０２）中のソースコードの表示を固定しているからである。
【０２３２】
ステップ９３０では、表示制御手段（２０４）は、表示Ａ（４０２）中に現在表示されているソースコードに対応する変更履歴データが有するバージョン番号が表示Ｂ（４０３）にこれから表示されるソースコードに対応する変更履歴データが有するバージョン番号よりも一つ新しいバージョン番号であるかどうかを判断する。表示制御手段（２０４）は、上記一つ新しいバージョン番号でないことに応じて、処理をステップ９３１に進める。一方、表示制御手段（２０４）は、上記一つ古いバージョン番号であることに応じて、処理を終了ステップであるステップ９１３に進める。何故ならば、表示Ａ（４０２）中に現在表示されているソースコードに対応する変更履歴データが有するバージョン番号が表示Ｂ（４０３）にこれから表示されるソースコードに対応する変更履歴データが有するバージョン番号よりも既に一つ新しいバージョン番号であるからである。
【０２３３】
ステップ９３１は、表示制御手段（２０４）は、上記一つ新しいバージョン番号でないことに応じて、表示Ａ（４０２）中に現在表示されているソースコードに対応する変更履歴データが有するバージョン番号よりも一つ古いバージョン番号を有する変更履歴データに対応するソースコード又は当該ソースコードに対応する情報を記憶手段（２０６）から取得し、当該取得したソースコード又は当該ソースコードに対応する情報を表示Ａ（４０２）内で表示する。
【０２３４】
ステップ９３２では、表示制御手段（２０４）は、ステップ９３１において取得したソースコード又は当該ソースコードに対応する情報を表示Ａ（４０２）内に表示する。
【０２３５】
ステップ９３３では、表示制御手段（２０４）は、上記戻る処理を終了する。
【図１】
0005967603.tif 000002
【図２Ａ】
0005967603.tif 000003
【図２Ｂ】
0005967603.tif 000004
【図３Ａ】
0005967603.tif 000005
【図３Ｂ】
0005967603.tif 000006
【図３Ｃ】
0005967603.tif 000007
【図３Ｄ】
0005967603.tif 000008
【図３Ｅ】
0005967603.tif 000009
【図３Ｆ】
0005967603.tif 000010
【図３Ｇ】
0005967603.tif 000011
【図４Ａ】
0005967603.tif 000012
【図４Ｂ】
0005967603.tif 000013
【図５Ａ】
0005967603.tif 000014
【図５Ｂ】
0005967603.tif 000015
【図５Ｃ】
0005967603.tif 000016
【図６Ａ】
0005967603.tif 000017
【図６Ｂ】
0005967603.tif 000018
【図６Ｃ】
0005967603.tif 000019
【図７】
0005967603.tif 000020
【図８Ａ】
0005967603.tif 000021
【図８Ｂ】
0005967603.tif 000022
【図８Ｃ】
0005967603.tif 000023
【図９Ａ】
0005967603.tif 000024
【図９Ｂ】
0005967603.tif 000025