| 【発明の名称】 |
プログラムのバージョン管理装置および方法 |
| 【発明者】 |
【氏名】小島 誠
|
| 【要約】 |
【課題】アプロケーションプログラム全体をバージョン単位で容易に再現できるプログラムのバージョン管理装置と方法を提供する。
【解決手段】現在使用中の版数のソースプログラムの内容を変更し、バージョン管理の登録操作を行うエディタと、現在のソースプログラムの内容と、版数が増加したソースプログラムの内容とを比較して変更箇所を抽出し、個々のファイル単位の版数管理を行うとともに、アプリケーション単位としてのバージョンを管理するバージョンマネージャと、変更箇所を記憶するバージョン管理データベースと、バージョン管理データベースから指定した版数のソースプログラムを再現するソースジェネレータとを具備し、アプリケーションのバージョン単位に、アプリケーションを構成するソースプログラムを一括して再現する。 |
【特許請求の範囲】
【請求項1】 現在使用中の版数のソースプログラムの内容を変更し、バージョン管理の登録操作を行うエディタと、前記現在使用中の版数のソースプログラムの内容と、版数が増加した新規のソースプログラムの内容とを比較して変更箇所を抽出し、個々のファイル単位の版数管理を行うとともに、アプリケーション単位としてのバージョンを管理するバージョンマネージャと、前記変更箇所を記憶するバージョン管理データベースと、前記バージョン管理データベースから指定した版数のソースプログラムを再現するソースジェネレータと、を具備することを特徴とするプログラムのバージョン管理装置。 【請求項2】 請求項1記載のプログラムのバージョン管理装置において、前記バージョン管理データベースは、個々のプログラムのバージョン情報とアプリケーション単位のバージョン情報とを格納することを特徴とするプログラムのバージョン管理装置。 【請求項3】 請求項1記載のプログラムのバージョン管理装置において、前記バージョン管理データベースに登録されたアプリケーション単位のバージョン情報は、前記バージョン管理データベースに格納されている個々のプログラムのバージョン情報を組み合わせて、アプリケーション単位のバージョンとして登録されることを特徴とするプログラムのバージョン管理装置。 【請求項4】 前記バージョン管理データベースへのアプリケーション単位のバージョン情報は前記エディタからバージョン登録コマンドを発行して開始することを特徴とするプログラムのバージョン管理装置。 【請求項5】 現在使用中の版数のソースプログラムの内容を変更し、バージョン管理の登録操作を行うエディタと、前記現在使用中の版数のソースプログラムの内容と、版数が増加した新規のソースプログラムの内容とを比較して変更箇所を抽出し、個々のファイル単位の版数管理を行うとともに、アプリケーション単位としてのバージョンを管理するバージョンマネージャと、前記変更箇所を記憶するバージョン管理データベースと、前記バージョン管理データベースから指定した版数のソースプログラムを再現するソースジェネレータとを具備するプログラムのバージョン管理方法であって、前記アプリケーション単位のバージョン情報の登録は、前記エディタからバージョン登録コマンドを発行する第1のステップと、前記バージョン管理データベースを参照する第2のステップと、個々のバージョン情報を前記エディタに渡す第3のステップと、前記バージョン情報を表示する第4のステップと、前記バージョンを組み合わせて前記バージョン管理データベースに登録する第5のステップと、バージョン情報登録を終了するかどうか判断する第6のステップと、前記バージョン情報を登録を続ける場合は、前記第1のステップに戻る第7のステップと、を含むことを特徴とするプログラムのバージョン管理方法。 【請求項6】 現在使用中の版数のソースプログラムの内容を変更し、バージョン管理の登録操作を行うエディタと、前記現在使用中の版数のソースプログラムの内容と、版数が増加した新規のソースプログラムの内容とを比較して変更箇所を抽出し、個々のファイル単位の版数管理を行うとともに、アプリケーション単位としてのバージョンを管理するバージョンマネージャと、前記変更箇所を記憶するバージョン管理データベースと、前記バージョン管理データベースから指定した版数のソースプログラムを再現するソースジェネレータとを具備するプログラムのバージョン管理方法であって、前記アプリケーション単位の旧バージョンのプログラムの再現は、ソースジェネレータを起動する第1のステップと、アプリケーション単位のバージョンを指定する第2のステップと、前記指定したアプリケーションのバージョンを読み込む第3のステップと、アプリケーションの数をカウントするカウンタを初期化する第4のステップと、前記ソースジェネレータがバージョン管理データベースのアプリケーション単位のバージョン情報を参照する第5のステップと、前記バージョン管理データベースを参照して、前記カウンタに等しいバージョンのアプリケーションがあるかどうか検索する第6のステップと、前記カウンタに等しいバージョンのアプリケーションがあれば、そのアプリケーションを出力する第7のステップと、なければ、次のアプリケーションを探索するために、前記カウンタをインクリメントして前記第2のステップに戻る第8のステップと、検索する最後のアプリケーションかどうかチェックする第9のステップと、最後のアプリケーションでなければ、前記第2のステップに戻って検索を続ける第10のステップと、を含むことを特徴とするプログラムのバージョン管理方法。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、過去のソースプログラムをアプリケーションプログラム全体のバージョン単位で容易に再現でき、バグ解析の手続きが容易となるプログラムのハバージョン管理装置および方法に関する。 【0002】 【従来の技術】従来のプログラムのバージョンの管理方式としては、特開平6−83596号公報に記載されているものがある。これは、現在使用中の版数のソースプログラムの内容とこれを変更し版数が増加して新規のソースプログラムの内容と比較し、変更箇所を抽出し日付管および版数管理を行うバージョンマネージャと、変更箇所を記憶するバージョン管理データベースと、日時および版数の少なくともいずれか一方の指定を受けこの時点使用中のソースプログラムおよびバージョン管理データベースの記憶内から指定を受けた日時および版数のソースプログラムとを再現するソースジェネレータとから構成され、過去のプログラムの状態を容易に再現でき、バグ解析の手続きが容易となると共に、バージョン管理に伴う記憶媒体の容量が節約できるものである。 【0003】 【発明が解決しようとする課題】しかしながら、特開平6−83596号公報に記載された発明は、バージョンマネージャで個々のソースプログラムの管理を行っているが、アプリケーションを構成する個々のソースファイルのバージョン情報であるアプリケーション単位のバージョン情報(構成管理情報)持たないという欠点があった。 【0004】一般に、アプリケーションプログラムは、複数のソースプログラムから構成されるのが一般的であり、バグ修正やテストを行う場合には、過去にリリースしたアプリケーションの状態を忠実に再現する必要がある。そのためには、個々のソースファイルを単独で再現するだけでなく、アプリケーション単位のバージョンで、過去のソースプログラムファイルを一括して再現する機能がどうしても必要になってくる。 【0005】本発明は上述のような従来の技術の問題点に鑑みなされたものであって、アプリーションプログラム全体をバージョン単位で容易に再現でき、バグ解析の手続きが容易となるプログラムのバージョン管理装置と方法を提供することを目的とする。 【0006】 【課題を解決するための手段】上記の問題点を解決するために、現在使用中の版数のソースプログラムの内容を変更し、バージョン管理の登録操作を行うエディタと、現在使用中の版数のソースプログラムの内容と、版数が増加した新規のソースプログラムの内容とを比較して変更箇所を抽出し、個々のファイル単位の版数管理を行うとともに、アプリケーション単位としてのバージョンを管理するバージョンマネージャと、変更箇所を記憶するバージョン管理データベースと、バージョン管理データベースから指定した版数のソースプログラムを再現するソースジェネレータとを具備することを特徴とする。 【0007】また、バージョン管理データベースは、個々のプログラムのバージョン情報とアプリケーション単位のバージョン情報とを格納することを特徴とする。 【0008】また、バージョン管理データベースに登録されたアプリケーション単位のバージョン情報は、バージョン管理データベースに格納されている個々のプログラムのバージョン情報を組み合わせて、アプリケーション単位のバージョンとして登録されることを特徴とする。 【0009】また、バージョン管理データベースへのアプリケーション単位のバージョン情報はエディタからバージョン登録コマンドを発行して開始することを特徴とする。 【0010】また、現在使用中の版数のソースプログラムの内容を変更し、バージョン管理の登録操作を行うエディタと、現在使用中の版数のソースプログラムの内容と、版数が増加した新規のソースプログラムの内容とを比較して変更箇所を抽出し、個々のファイル単位の版数管理を行うとともに、アプリケーション単位としてのバージョンを管理するバージョンマネージャと、変更箇所を記憶するバージョン管理データベースと、バージョン管理データベースから指定した版数のソースプログラムを再現するソースジェネレータとを具備するプログラムのバージョン管理方法であって、アプリケーション単位のバージョン情報の登録は、エディタからバージョン登録コマンドを発行する第1のステップと、バージョン管理データベースを参照する第2のステップと、個々のバージョン情報をエディタに渡す第3のステップと、バージョン情報を表示する第4のステップと、バージョンを組み合わせてバージョン管理データベースに登録する第5のステップと、バージョン情報登録を終了するかどうか判断する第6のステップと、バージョン情報を登録を続ける場合は、第1のステップに戻る第7のステップとを含むことを特徴とする。 【0011】また、現在使用中の版数のソースプログラムの内容を変更し、バージョン管理の登録操作を行うエディタと、現在使用中の版数のソースプログラムの内容と、版数が増加した新規のソースプログラムの内容とを比較して変更箇所を抽出し、個々のファイル単位の版数管理を行うとともに、アプリケーション単位としてのバージョンを管理するバージョンマネージャと、変更箇所を記憶するバージョン管理データベースと、バージョン管理データベースから指定した版数のソースプログラムを再現するソースジェネレータとを具備するプログラムのバージョン管理方法であって、アプリケーション単位の旧バージョンのプログラムの再現は、ソースジェネレータを起動する第1のステップと、アプリケーション単位のバージョンを指定する第2のステップと、指定したアプリケーションのバージョンを読み込む第3のステップと、アプリケーションの数をカウントするカウンタを初期化する第4のステップと、ソースジェネレータがバージョン管理データベースのアプリケーション単位のバージョン情報を参照する第5のステップと、バージョン管理データベースを参照して、カウンタに等しいバージョンのアプリケーションがあるかどうか検索する第6のステップと、カウンタに等しいバージョンのアプリケーションがあれば、そのアプリケーションを出力する第7のステップと、なければ、次のアプリケーションを探索するために、カウンタをインクリメントして第2のステップに戻る第8のステップと、検索する最後のアプリケーションかどうかチェックする第9のステップと、最後のアプリケーションでなければ、第2のステップに戻って検索を続ける第10のステップとを含むことを特徴とする。 【0012】上記のような構成をとることにより、本発明において、プログラムのバージョンがアップするごとに最新バージョンと旧バージョンとの相違を差分情報としてバージョン管理データベースに格納しているので、過去の旧バージョンのプログラムの状態を容易に再現できる。また、プログラム単位だけでなく、多くのプログラムから構成されるアプリケーションもバージョン単位に履歴をとったり、一括して再現できるため、アプリケーションの現在の状態の把握や、バグを修正した後のプログラムやシステムのテストを容易に行うことができる。 【0013】 【発明の実施の形態】本発明の一実施例を図面を参照して説明する。 【0014】図1は、本発明の一実施例のシステム構成を示す図である。図1に示すように、本実施例は、現在使用中の版数のソースプログラムの内容を変更し、バージョン管理の登録操作を行うエディタと、現在使用中の版数のソースプログラムの内容と、版数が増加した新規のソースプログラムの内容とを比較して変更箇所を抽出し、個々のファイル単位の版数管理を行うとともに、アプリケーション単位としてのバージョンを管理するバージョンマネージャと、変更箇所を記憶するバージョン管理データベースと、バージョン管理データベースから指定した版数のソースプログラムを再現するソースジェネレータとから構成される。 【0015】バージョン管理データベース7の個々のプログラム単位のバージョン情報5にはプログラムのバージョン番号、更新日時、差分情報が格納されている。また、アプリケーション単位のバージョン情報6にはアプリケーションのバージョン番号、更新日時、アプリケーションを構成するプログラムファイル名、プログラムのバージョンの番号が格納されている。 【0016】アプリケーションは複数のプログラムから構成されるのが普通であり、収容されるプログラムとステップ数はアプリケーションの種類によって異なる。 【0017】図2は、本発明の各種操作方法を示す図である。本実施例においては、以下の4つの操作方法がある。 【0018】 (1)ファイル作成とデータベースへの登録(2)アプリケーション単位のバージョン情報登録(3)指定バージョンのプログラム再現(4)アプロケーション単位の旧バージョンのプログラム再現なお、図の右側に示すのは、それらの操作を説明しているページの図番である。 【0019】以降、図2に示す順番20〜23に従って説明していく。 【0020】図3は、ソースプログラムの差分情報の抽出方法を示す図である。 【0021】図3において、現在使用中のバージョン管理データベース7に登録された最新バージョンのソースプログラム(以降、現版ソースプログラムと略す)25bは、プログラム等を一時的に格納しておくテンポラリファイル25aに格納されたプログラムと比較して、現版ソースプログラム25bに変更箇所(図4のX1)があれば、その箇所を現版ソースプログラム25bに対する差分情報25cとして抽出し、バージョン管理データベース7に書き込む。ここで、現版ソースプログラム25bの内容はテンポラリファイル25aの内容により新しいファイル、つまり最新の内容である。その後、個々のファイル単位およびアプリケーション単位のバージョン管理を行う。バージョンマネージャ4が、テンポラリファイル25aの内容を現版ソースプログラム25bに上書きされる。こうして、現版ソースプログラム25bを常に最新の状態に維持する。 【0022】図4は、ファイル作成とバージョン管理データベース7への登録方法を示すフローチャートである。 【0023】それでは、まず、図1と図4を参照してファイル作成とバージョン管理データベースへの登録方法を説明する。 【0024】エディタ1を起動する(ステップS100)。ステップS100で、エディタ1を起動すると、現版のソースプログラム2がエディタに表示される(ステップS101)。エディタの画面で現版のソースプログラム2を変更するかどうか判断して(ステップS102)、変更がなければ、現版ソースプログラム2と同一の内容を持つテンポラリファイルを作成して(ステップS103)、変更があれば、変更された現版ソースプログラム2からテンポラリファイル3を作成する(ステップS104)。ここで、個々のファイルのバージョン登録コマンド10を発行すると(ステップS105)、バージョンマネージャ4は、現版ソースプログラム2の内容とテンポラリファイル3との内容とを比較して(ステップS106)、変更箇所があるかどうかチェックする(ステップ107)。ステップS107で、変更箇所がある場合には、変更箇所を差分情報として抽出する(ステップS108)。そして、バージョン管理情報をバージョン管理データベース7に書き込む(ステップS109)。その後、バージョンマネージャ4が、テンポラリファイル3の内容を現版ソースプログラム2に上書きする(ステップS110)。 【0025】次に、アプリケーションを構成する各ソースファイルのバージョンをアプリケーション単位のバージョン情報としてバージョン管理データベース7に登録する方法を説明する。 【0026】バージョン管理データベース7に登録されている各ファイルのバージョンは自由に組み合わせて、アプリケーション単位のバージョンとしてバージョン管理データベース7に登録することができる。例えば、図5(a)に図式的に示すように、ファイルA27のバージョン1のファイルA27aと、ファイルB28のバージョン1のファイル28aと、ファイルC29のバージョン2のファイル29aとをそれぞれ組み合わせてアプリケーションA26のバージョンとすることも、ファイルA26のバージョン3のファイル27bと、ファイルB28のバージョン1のファイル28aと、ファイルC29のバージョン2のファイル29aとをそれぞれ組み合わせて、アプリケーションB30のバージョンとして登録することもできる。図5(b)は図5(a)をまとめた表である。 【0027】それでは、次に、図1,図5,図7を参照してアプリケーション単位のバージョン登録方法を説明する。 【0028】エディタ1を起動する(ステップS200)。エディタ1からアプリケーションのバージョン登録コマンド11を発行する(ステップS201)。バージョンマネージャ4がバージョン管理データベース7を参照する(ステップS202)。個々のプログラムのバージョン情報をエディタ1に渡し(ステップS203)、そのバージョン情報をエディタ1の画面に表示する(ステップS204)。ファイルA〜C71〜73のバージョンを組み合わせて、アプリケーション単位のバージョンとしてバージョン管理データベース7に登録する(ステップS204)。 【0029】続いて、指定したバージョンのソースプログラムを再現する方法を説明する。 【0030】図7は、バージョン管理データベース7に格納されたプログラムとアプリケーションのバージョン情報の登録の様子を示した図である。図7(a)に示すように、例えば、ファイルA27は、バージョン3まで、ファイルB28はバージョン1まで、ファイルC29はバージョン2まで登録されている。各ファイルのバージョン1 27a,28a,29aとして情報は、バージョン1 27a,28a,29aとして登録したソースファイルそのものが登録されている。バージョン2 27b',29b'としての情報は、バージョン1 27a29aからバージョン2 27b,29bへの差分情報が記録されている。バージョン3 27'としての情報は、バージョン2 27bからバージョン3 27cへの差分情報が記録されている。バージョンが2以上の場合は、1世代前のバージョンからの差分が保存されている。 【0031】図7(b)は、図7(a)をまとめた表である。これらの差分情報が旧バージョンのソースファイルを再現するときに重要な役割を果たす。 【0032】それでは、図1と図8を参照して指定したバージョンのプログラム再現方法を説明する。 【0033】エディタ1またはコマンドラインからソースジェネレータ8を起動する(ステップS300)。再現するソースファイルのバージョンを指定する(ステップS301)。ソースファイルのバージョン1を読み込む(ステップS302)、ソースプログラムをカウントするカウンタiに1を代入して初期化する(ステップS303)。カウンタiと等しいバージョンのソースファイルがあるかどうかチェックする(ステップS304)。カウンタiに等しいバージョンのソースファイルがあれば、そのソースファイルを再現する(ステップS309)、なければ、現在読み込んでいるバージョンiのファイルの一世代前のバージョンi+1のファイルの変更箇所の差分情報を抽出して(ステップS305)、バージョンi+1のソースファイルを生成する(ステップS306)。そして、次の探索をするため、カウンタiを1だけインクリメントして、ステップS304に戻る(ステップS307)。 【0034】最後にアプリケーション単位で旧バージョンのプログラムの再現する方法を説明する。 【0035】本発明のプログラムのバージョン管理は、バージョン管理データベース7に個々のプログラムのバージョン情報5と、プログラムの集合体であるアプリケーション単位のバージョン6とを記録することにより個々のファイル単位だけでなく、アプリケーション単位に一括してソースファイルを再現できる。図9は、個々のファイルをプログラム単位およびアプリケーション単位にバージョン管理データベース7を検索して、目的のプログラムあるいはアプリケーションを見つける方法を示した図である。図9(a)は、個々のプログラム単位にバージョン管理データベース7を検索する方法を示したものである。プログラム単位にデータベースを検索するときは、図9(a)に示すように、指定したプログラムが見つかるまでバージョン管理データベース7を順に検索していく、例えば、プログラム8 30hを見つけようとすると、プログラム1 30aからプログラム7 39gまで順に探索する。図中、点線で示すのが、バージョン管理データベース7の検索パスである。該当するプログラムが見つかるまで順に検索を続けていくので、プログラム数が多いときや、プログラムから呼んでいるサブルーチン等が多いときは膨大な検索時間を必要とする。 【0036】図9(b)は、アプリケーション単位にバージョン管理データベース7を検索する方法を示したものである。例えば、アプリケーション2 50を見つけようとすると、2回の探索パスだけで済み、一点鎖線で囲んだアプリケーションを構成する複数のプログラムを一括して再現できる。アプリケーション単位にバ−ジョン管理データベース7を検索するときは、やはり指定したアプリケーションが見つかるまでバージョン管理データベース7を検索していくが、図9(a)の個々のプログラム単位の検索に比較すると、アプリケーション単位に検索を行うので、高速な検索が可能となり、大幅に時間を節約できる。 【0037】それでは、図1と図10を参照してアプリケーション単位で旧バージョンのプログラムの再現方法を説明する。 【0038】ソースジェネレータ8を起動する(ステップS400)。アプリケーションのバージョンを指定する(ステップS401)。アプリケーションをカウントするカウンタjに1を代入して初期化する(ステップS402)。ソースジェネレータ8がアプリケーション単位のバージョン情報を参照する(ステップS403)。カウンタjに等しいバージョンのアプリケーションがあるかどうかチェックする(ステップS404)。カウンタjに等しいバージョンのアプリケーションがあれば、そのアプリケーションのプログラムを再現する(ステップS405)。なければ、次のアプリケーションを探索するために、カウンタjを1だけインクリメントして、ステップ403に戻る(ステップS406)。指定したアプリケーションのプログラムが最後かどうかチェックする(ステップS407)。最後のアプリケーションでなければ、ステップ405に戻って再現を続け、最後のアプリケーションであれば処理を終了する。 【0039】 【発明の効果】以上説明したように、本発明によれば、旧バージョンの過去のプログラムを容易に再現できる。また、アプリケーションのバージョン単位に、そのバージョンのアプリケーションを構成するソースプログラムを一括して再現できるため、アプリケーション全体の状態の把握や、バグ修正後のテストが容易となる顕著な効果を奏する。
|
| 【出願人】 |
【識別番号】000004237 【氏名又は名称】日本電気株式会社
|
| 【出願日】 |
平成10年(1998)5月18日 |
| 【代理人】 |
【弁理士】 【氏名又は名称】若林 忠 (外4名)
|
| 【公開番号】 |
特開平11−327878 |
| 【公開日】 |
平成11年(1999)11月30日 |
| 【出願番号】 |
特願平10−135591 |
|