JPH0981371A - Automatic version-up method and device for source code - Google Patents
Automatic version-up method and device for source codeInfo
- Publication number
- JPH0981371A JPH0981371A JP7232742A JP23274295A JPH0981371A JP H0981371 A JPH0981371 A JP H0981371A JP 7232742 A JP7232742 A JP 7232742A JP 23274295 A JP23274295 A JP 23274295A JP H0981371 A JPH0981371 A JP H0981371A
- Authority
- JP
- Japan
- Prior art keywords
- file
- difference information
- difference
- derived
- files
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、ソースコードをバ
ージョンアップするのに好適なソースコード自動バージ
ョンアップ方法及び装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an automatic source code upgrade method and apparatus suitable for upgrading source code.
【0002】[0002]
【従来の技術】従来、ソースコードのファイルのマージ
は、図21に示す方法で次のように行われていた。即
ち、ある元ファイル61から派生した2つのファイル
(派生バージョン)62-1,62-2が存在する場合、こ
の2つの派生ファイル62-1,62-2を比較して、その
相違部分を検出し、その相違部分をもとにファイルのマ
ージを行って新たなファイル(新バージョン)63を生
成していた。2. Description of the Related Art Conventionally, source code files have been merged by the method shown in FIG. 21 as follows. That is, when two files (derivation versions) 62-1 and 62-2 derived from a certain original file 61 exist, these two derivation files 62-1 and 62-2 are compared and the difference is detected. Then, the files are merged based on the difference and a new file (new version) 63 is generated.
【0003】[0003]
【発明が解決しようとする課題】そこで、図21に示し
たようなマージ方法を利用して、例えば派生ファイル6
2-1は既に動作しているが、派生ファイル62-2はまだ
動作していないなどといった場合に、派生ファイル62
-1に派生ファイル62-2での変更部分を取り込むことが
できるならば、ソースコードをバージョンアップした際
の不具合の発生を減少させるのに効果的である。Therefore, by using the merging method as shown in FIG. 21, for example, the derived file 6
2-1 is already working, but the derived file 62-2 is not working yet.
If the changed part in the derived file 62-2 can be incorporated in -1, it is effective to reduce the occurrence of troubles when the source code is upgraded.
【0004】しかし、上記した従来のファイルマージ方
法では、派生ファイル62-1と派生ファイル62-2とは
同じレベルに列せられており、派生ファイル62-1,6
2-2間の相違箇所は分かっても、各相違箇所が、どちら
の派生ファイルでの変更によるものであるかは分からな
いことから、上記したような派生ファイル62-1に派生
ファイル62-2での変更部分を取り込むことは、ユーザ
が結果的にそうなるように逐次指示していかない限り、
不可能であった。However, in the conventional file merging method described above, the derived files 62-1 and 62-2 are arranged at the same level, and the derived files 62-1 and 6-2 are arranged at the same level.
Although the difference between 2-2 is known, it is not known which change is caused in which derived file, so the derived file 62-1 and the derived file 62-2 as described above are not known. Incorporating the changes made in, unless the user sequentially directs them to do so
It was impossible.
【0005】また、従来のマージ方法では、元ファイル
61はどのようなファイルであるか、元ファイル61と
各々の派生ファイル62-1,62-2にどのような違いが
あるかなどの情報は一斉考慮されていなかった。そのた
め、各派生ファイル62-1,62-2間の違いが、それぞ
れの変更箇所の衝突によるものなのか、それとも一方の
ファイルだけの変更によるものなのかが特定できず、ユ
ーザが別途ソースコードを比較して判断する必要があっ
た。Further, in the conventional merging method, information such as what kind of file the original file 61 is, and what difference the original file 61 has and the derived files 62-1 and 62-2 are different. It was not taken into consideration at once. Therefore, it is not possible to determine whether the difference between each of the derived files 62-1 and 62-2 is due to the collision of the changed parts, or the change of only one file, and the user separately needs the source code. It was necessary to compare and judge.
【0006】本発明は上記事情を考慮してなされたもの
でその目的は、ソースコードのバージョンアップ、特に
ソースコードの元ファイルから派生した2つの派生ファ
イルの一方に、もう一方のファイルの変更箇所を取り込
んで新バージョンを作成するマージ処理が自動的に行え
るソースコード自動バージョンアップ装置及び方法を提
供することにある。The present invention has been made in consideration of the above circumstances, and an object thereof is to upgrade a source code, and in particular, one of two derived files derived from an original file of the source code and a changed portion of the other file. It is an object of the present invention to provide a source code automatic version upgrade device and method capable of automatically performing a merge process of capturing a new version and creating a new version.
【0007】[0007]
【課題を解決するための手段】本発明の第1の観点に係
る構成は、ソースコードの元ファイルと当該元ファイル
から派生した第1の派生ファイルの間の差異を調べて、
対応する位置関係を示す第1の差分情報を生成すると共
に、元ファイルと当該元ファイルから派生した第2の派
生ファイルの間の差異を調べて、対応する位置関係を示
す第2の差分情報を生成した後、これら第1及び第2の
差分情報から、上記第1及び第2の派生ファイル間の差
異に対応する位置関係を示す第3の差分情報を生成し、
この第3の差分情報と上記第1及び第2の派生ファイル
をもとに、第1及び第2の派生ファイルのいずれか一方
のファイルに、他方のファイルの変更部分を取り込む形
でソースコードのマージを行って、バージョンアップさ
れた出力ファイルを生成するようにしたことを特徴とす
る。ここで、上記一方のファイルに、他方のファイルの
変更部分を取り込む際に、その変更部分の例えば各行に
他方のファイルからの取り込みであることを示す識別情
報(マーク情報)を付加するとよい。The configuration according to the first aspect of the present invention is to check a difference between an original file of source code and a first derived file derived from the original file,
The first difference information indicating the corresponding positional relationship is generated, and the difference between the original file and the second derived file derived from the original file is checked to obtain the second difference information indicating the corresponding positional relationship. After the generation, the third difference information indicating the positional relationship corresponding to the difference between the first and second derivative files is generated from the first and second difference information,
Based on the third difference information and the first and second derived files, one of the first and second derived files contains the changed portion of the other file in the source code. It is characterized in that a merged file is generated to generate an upgraded output file. Here, when the changed portion of the other file is loaded into the one file, identification information (mark information) indicating that the changed portion is loaded from the other file may be added to, for example, each line of the changed portion.
【0008】本発明の第2の観点に係る構成は、上記第
1の観点に係る構成に、第1及び第2の派生ファイル間
の差異を調べて、その差異に対応する位置関係を示す第
4の差分情報を生成する処理を加え、マージ時に当該第
4の差分情報を参照することでマージの妥当性を検証す
るようにしたことを特徴とする。A configuration according to a second aspect of the present invention is the same as the configuration according to the first aspect, in which a difference between the first and second derived files is examined and a positional relationship corresponding to the difference is shown. 4 is added, and the validity of the merge is verified by referring to the fourth difference information at the time of merging.
【0009】本発明の第3の観点に係る構成は、上記第
1の観点に係る構成に、出力ファイルと、各入力ファイ
ル(元ファイル、第1及び第2の派生ファイル)とを比
較することで、出力ファイルが正しくマージされている
か否かを検証する処理を加えたことを特徴とする。According to a third aspect of the present invention, the output file and each input file (the original file, the first and second derivative files) are compared with the configuration according to the first aspect. Then, a process for verifying whether or not the output files are correctly merged is added.
【0010】本発明の第4の観点に係る構成は、各入力
ファイル(元ファイル、第1及び第2の派生ファイル)
を関数毎に分解してファイル別の関数リストを生成した
後、これら各関数リストのうち元ファイルと第1の派生
ファイルの両関数リストの差異を調べて、対応する位置
関係を示す第1の差分情報を生成すると共に、元ファイ
ルと第2の派生ファイルの両関数リストの差異を調べ
て、対応する位置関係を示す第2の差分情報を生成し、
更にこれら第1及び第2の差分情報から、第1及び第2
の派生ファイルの両関数リスト間の差異に対応する位置
関係を示す第3の差分情報を生成し、この第3の差分情
報と上記第1及び第2の派生ファイルをもとに、第1及
び第2の派生ファイルのいずれか一方のファイルに、他
方のファイルの変更部分を取り込む形でソースコードの
マージを行って、バージョンアップされた出力ファイル
を生成するようにしたことを特徴とする。According to a fourth aspect of the present invention, each input file (original file, first and second derivative files) is used.
Is decomposed for each function to generate a function list for each file, and then the difference between the function list of the original file and the function list of the first derived file in each of these function lists is checked, and a first positional relationship indicating the corresponding positional relationship is determined. While generating the difference information, the difference between both function lists of the original file and the second derivative file is checked, and the second difference information indicating the corresponding positional relationship is generated,
Further, from the first and second difference information, the first and second
3rd difference information indicating the positional relationship corresponding to the difference between both function lists of the derived file is generated, and based on this 3rd difference information and the 1st and 2nd derived files, It is characterized in that the source code is merged into any one of the second derived files so as to incorporate the changed portion of the other file to generate an upgraded output file.
【0011】本発明の第5の観点に係る構成は、元ファ
イルと第1の派生ファイルの間の差異を調べて、対応す
る位置関係を示す第1の差分情報を生成すると共に、元
ファイルと第2の派生ファイルの間の差異を調べて、対
応する位置関係を示す第2の差分情報を生成し、この第
1及び第2の差分情報から、第1及び第2の派生ファイ
ル間の差異に対応する位置関係を示す第3の差分情報を
生成する一方、元ファイルと第1及び第2の派生ファイ
ルの間で常に同じパターンで変更が行われている箇所を
探して、その変更前後のパターンの対応情報を定型置換
情報として生成するようにし、上記第3の差分情報と、
第1及び第2の派生ファイルをもとに、第1及び第2の
派生ファイルのいずれか一方のファイルに、他方のファ
イルの変更部分を取り込む形でソースコードのマージを
行って、バージョンアップされた出力ファイルを生成す
る場合に、上記定型置換情報の示す変更前パターンに一
致するソースコード部分については、当該定型置換情報
の示す変更後パターン(定型パターン)に置換すること
を特徴とする。In the configuration according to the fifth aspect of the present invention, the difference between the original file and the first derived file is checked, the first difference information indicating the corresponding positional relationship is generated, and The difference between the second derivative files is checked, the second difference information indicating the corresponding positional relationship is generated, and the difference between the first and second derivative files is generated from the first and second difference information. While the third difference information indicating the positional relationship corresponding to is generated, while searching for a place where the same pattern is always changed between the original file and the first and second derived files, The pattern correspondence information is generated as the standard replacement information, and the third difference information,
Based on the first and second derivative files, the source code is merged in such a way that one of the first and second derivative files incorporates the changed part of the other file, and the version is upgraded. When the output file is generated, the source code portion that matches the pre-change pattern indicated by the standard replacement information is replaced with the changed pattern (standard pattern) indicated by the standard replacement information.
【0012】上記第1の観点に係る構成においては、元
ファイルから派生した第1及び第2の派生ファイルの一
方を基本とし、そのソースコードにもう一方のファイル
の変更部分を追加していく形でマージを行うことが可能
となる。これにより、マージ後のソースコードでの不具
合の発生を減少することができる。また、元ファイルと
第1及び第2の派生ファイルの差異を検出することで、
対応する第1及び第2の差分情報から第1及び第2の派
生ファイルがそれぞれ独自に変更を行った箇所を特定で
き、各変更部分の衝突箇所も特定できる。更に、上記一
方のファイルに追加される他方のファイルの変更部分の
例えば各行にマーク情報を付加する構成を適用した場
合、このマーク情報をテキストエディタなどで探すこと
により変更部分を自動的に検出できることから、変更部
分の正当性の検証が容易に行える。In the configuration according to the first aspect, one of the first and second derived files derived from the original file is used as a base, and the changed portion of the other file is added to the source code. It is possible to merge with. This can reduce the occurrence of defects in the source code after merging. Also, by detecting the difference between the original file and the first and second derived files,
From the corresponding first and second difference information, it is possible to specify the place where the first and second derivative files have made their own changes, and also specify the collision part of each changed portion. Furthermore, if a mark information is added to each line of the changed portion of the other file added to the above one file, the changed portion can be automatically detected by searching the mark information with a text editor. Therefore, the correctness of the changed part can be easily verified.
【0013】上記第2の観点に係る構成においては、第
1及び第2の派生ファイルの差分情報(第4の差分情
報)をマージ時に参照することで、マージの正当性の検
証がより詳細に行えるようになり、出力ファイルの正確
さが増加する。In the configuration according to the second aspect described above, by verifying the difference information (fourth difference information) of the first and second derivative files at the time of merging, the validity of the merge can be verified in more detail. The accuracy of the output file is increased.
【0014】上記第3の観点に係る構成においては、出
力ファイルと各入力ファイルとを比較することで出力フ
ァイルの正当性が評価されるため、ユーザの負担が軽減
する。In the configuration according to the third aspect, the legitimacy of the output file is evaluated by comparing the output file with each input file, thus reducing the burden on the user.
【0015】上記第4の観点に係る構成においては、マ
ージ操作が関数毎に行われることにより、機能単位のマ
ージが実現される。上記第5の観点に係る構成において
は、上記一方のファイルに取り込まれる他方のファイル
の変更部分に常に同じパターン(定型パターン)に置換
すべきソースコードが含まれている場合には、その部分
が定型パターンに自動的に置換されることから、このよ
うな箇所をユーザが探して修正する必要がなくなる。In the configuration according to the fourth aspect, the merging operation is performed for each function, so that the merging of functional units is realized. In the configuration according to the fifth aspect, when the changed part of the other file captured in the one file always includes the source code to be replaced with the same pattern (standard pattern), the part is changed. Since the standard pattern is automatically replaced, it is not necessary for the user to search for and correct such a part.
【0016】[0016]
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態につき説明する。 [第1の実施形態]図1は本発明の第1の実施形態に係
るソースコード自動バージョンアップ装置の全体構成を
示すブロック図である。この図1のソースコード自動バ
ージョンアップ装置は、2つのファイル間の差分を検出
するための差分検出用コマンド(diffコマンド)が
適用可能な計算機(情報処理装置)により実現されるも
のである。BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the drawings. [First Embodiment] FIG. 1 is a block diagram showing the overall configuration of a source code automatic version upgrade apparatus according to a first embodiment of the present invention. The source code automatic version upgrade apparatus of FIG. 1 is realized by a computer (information processing apparatus) to which a difference detection command (diff command) for detecting a difference between two files can be applied.
【0017】図1において、1は外部記憶装置、例えば
磁気ディスク装置である。この磁気ディスク装置1(に
装着されている記憶媒体である磁気ディスク)には、フ
ァイル11,12-1,12-2が格納されているものとす
る。ここで、ファイル11は元ファイル、ファイル12
-1は元ファイル11から派生した第1の派生ファイル、
ファイル12-2は元ファイル11から派生した第2の派
生ファイルである。各ファイル11,12-1,12-2
は、図2に示すようにソースコードからなる。In FIG. 1, reference numeral 1 is an external storage device such as a magnetic disk device. It is assumed that files 11, 12-1 and 12-2 are stored in the magnetic disk device 1 (a magnetic disk that is a storage medium mounted therein). Here, the file 11 is the original file and the file 12
-1 is the first derived file derived from the original file 11,
The file 12-2 is a second derived file derived from the original file 11. Each file 11, 12-1, 12-2
Consists of source code as shown in FIG.
【0018】2は本発明に直接関係する自動バージョン
アップ機構である。この自動バージョンアップ機構2
は、計算機(の中枢をなすCPU)が自動バージョンア
ッププログラムを実行することにより実現される。自動
バージョンアップ機構2は、ユーザにより指定される自
動バージョンアップに必要なファイル(ここでは、元フ
ァイルとそこから派生した2つの派生ファイル)を対象
に、そのファイル間の差異、対応関係などを示す情報
(以下、差分情報と称する)210を生成する差分情報
生成機構21、及び差分情報生成機構21で生成された
差分情報等をもとにソースコードのマージを行うマージ
機構22の2つの機能要素から構成される。Reference numeral 2 is an automatic version upgrade mechanism directly related to the present invention. This automatic version upgrade mechanism 2
Is realized by a computer (central CPU) executing an automatic version upgrade program. The automatic version upgrade mechanism 2 targets the files (here, the original file and the two derived files derived from it) necessary for the automatic version upgrade designated by the user, and shows the differences between the files and the corresponding relationship. Two functional elements: a difference information generation mechanism 21 that generates information (hereinafter, referred to as difference information) 210, and a merge mechanism 22 that merges source codes based on the difference information generated by the difference information generation mechanism 21. Composed of.
【0019】図3は、自動バージョンアップに際し、元
ファイルとしてファイル11が、第1の派生ファイルと
してファイル12-1が、そして第2の派生ファイルとし
て派生ファイル12-2がそれぞれ指定された場合の、自
動バージョンアップ機構2における処理の流れとデータ
の流れを示す。FIG. 3 shows a case where the file 11 is designated as the original file, the file 12-1 is designated as the first derivative file, and the derivative file 12-2 is designated as the second derivative file in the automatic version upgrade. 2 shows a processing flow and a data flow in the automatic version upgrade mechanism 2.
【0020】まず、差分情報生成機構21には、指定さ
れた元ファイル11及び派生ファイル12-1,12-2が
磁気ディスク装置1から読み込まれる。差分情報生成機
構21は、磁気ディスク装置1から読み込んだファイル
間の差異、対応関係などを示す差分情報210を生成し
てマージ機構22に送る。このマージ機構22には、差
分情報210の他、派生ファイル12-1,12-2が入力
される。マージ機構22は、これら差分情報210及び
派生ファイル12-1,12-2をもとにソースコードのマ
ージを行って出力ファイル220を作成し、磁気ディス
ク装置1に出力する。First, the specified original file 11 and the derived files 12-1 and 12-2 are read from the magnetic disk device 1 by the difference information generating mechanism 21. The difference information generation mechanism 21 generates difference information 210 indicating differences between files read from the magnetic disk device 1 and correspondences, and sends the difference information 210 to the merge mechanism 22. In addition to the difference information 210, the derivative files 12-1 and 12-2 are input to the merge mechanism 22. The merging mechanism 22 merges the source codes based on the difference information 210 and the derivative files 12-1 and 12-2 to create an output file 220, and outputs the output file 220 to the magnetic disk device 1.
【0021】図4は差分情報生成機構21の内部の機能
構成を示す。差分情報生成機構21は、第1の派生ファ
イル(12-1)と元ファイル(11)とを比較して差分
情報211-1を生成する差分情報生成部212-1、元フ
ァイル(11)と第2の派生ファイル(12-2)とを比
較して差分情報211-2を生成する差分情報生成部21
2-2、及びこれら両差分情報211-1,211-2から最
終的に利用する(マージ機構22が利用する)差分情報
210を生成する差分情報生成部213から構成され
る。ここで差分情報生成部212-1,212-2は、差分
情報生成機構21内での第1段階の差分情報生成処理を
司り、差分情報生成部213は、第2段階の差分情報生
成処理を司る。FIG. 4 shows the internal functional structure of the difference information generating mechanism 21. The difference information generation mechanism 21 compares the first derivation file (12-1) with the original file (11) to generate difference information 211-1, and the difference information generation unit 212-1 and the original file (11). Difference information generation unit 21 for generating difference information 211-2 by comparing with the second derived file (12-2)
2-2, and a difference information generation unit 213 that generates difference information 210 that is finally used (used by the merge mechanism 22) from the difference information 211-1 and 211-2. Here, the difference information generation units 212-1 and 212-2 are responsible for the first-stage difference information generation process in the difference information generation mechanism 21, and the difference information generation unit 213 is responsible for the second-stage difference information generation process. Take charge.
【0022】図5は差分情報生成部212-1,212-2
の内部の機能構成を示す。差分情報生成部212-1,2
12-2は、図6に示す形式のdiffコマンドの実行に
より当該コマンドで指定される第1及び第2のファイル
(ソースファイル)間の差分を検出する差分検出部21
2a、及び当該差分検出部212aの出力(diffコ
マンドの出力)を差分情報211-1,211-2に変換す
る情報変換部212bから構成される。なお、diff
コマンドは、当該コマンドで指定される2つのファイル
を比較して調べ、そのファイル間に差異がある場合に
は、その差異の種類、位置及び差異のある部分の内容を
出力するためのコマンドである。FIG. 5 shows the difference information generators 212-1 and 212-2.
The functional structure inside is shown. Difference information generation unit 212-1, 2
Reference numeral 12-2 denotes a difference detection unit 21 that detects a difference between the first and second files (source files) designated by the command by executing the diff command of the format shown in FIG.
2a and an information conversion unit 212b that converts the output of the difference detection unit 212a (output of the diff command) into difference information 211-1 and 211-2. Note that diff
The command is a command for comparing and checking two files specified by the command, and if there is a difference between the files, the type of the difference, the position, and the content of the difference portion are output. .
【0023】次に、同実施形態における動作を説明す
る。まず、自動バージョンアップに際し、ユーザのキー
ボード操作等により、自動バージョンアップ機構2に対
して、元ファイルとしてファイル11が、第1の派生フ
ァイルとしてファイル12-1が、そして第2の派生ファ
イルとして派生ファイル12-2が、それぞれ指定された
ものとする。Next, the operation of the embodiment will be described. First, at the time of automatic version upgrade, the file 11 is derived as the original file, the file 12-1 is derived as the first derivative file, and the second derivative file is derived as the second derivative file to the automatic version upgrade mechanism 2 by the user's keyboard operation or the like. It is assumed that the file 12-2 is designated.
【0024】この場合、自動バージョンアップ機構2内
の差分情報生成機構21は、磁気ディスク装置1から指
定された元ファイル11及び派生ファイル12-1,12
-2を読み込み、図7に示すように、元ファイル11と派
生ファイル12-1とを比較すると共に、元ファイル11
と派生ファイル12-2とを比較する。そして差分情報生
成機構21は、この比較結果から差分情報210を生成
してマージ機構22に出力する。In this case, the difference information generation mechanism 21 in the automatic version upgrade mechanism 2 uses the original file 11 and the derived files 12-1, 12 designated by the magnetic disk device 1.
-2 is read, and the original file 11 and the derived file 12-1 are compared with each other as shown in FIG.
And the derivative file 12-2. Then, the difference information generation mechanism 21 generates difference information 210 from this comparison result and outputs it to the merge mechanism 22.
【0025】次に、この差分情報生成機構21の動作の
詳細を説明する。本実施形態では、差分情報生成機構2
1での差分情報生成は2段階に分けて行われる。第1段
階の差分情報生成は、当該差分情報生成機構21内の差
分情報生成部212-1,212-2により、図6に示した
形式のdiffコマンドを用いて次のように行われる。
ここで、差分情報生成部212-1で用いられるdiff
コマンド(diffコマンド#1と称する)では、第1
のファイル(ソースファイル)として派生ファイル12
-1が、第2のファイル(ソースファイル)として元ファ
イル11が指定されるものとする。同様に、差分情報生
成部212-2で用いられるdiffコマンド(diff
コマンド#2と称する)では、第1のファイルとして元
ファイル11が、第2のファイルとして派生ファイル1
2-2が指定されるものとする。Next, details of the operation of the difference information generating mechanism 21 will be described. In this embodiment, the difference information generation mechanism 2
The difference information generation in 1 is performed in two stages. The difference information generation in the first stage is performed by the difference information generation units 212-1 and 212-2 in the difference information generation mechanism 21 using the diff command in the format shown in FIG. 6 as follows.
Here, diff used in the difference information generation unit 212-1
The command (referred to as diff command # 1) is the first
Derived file 12 as a file (source file) of
It is assumed that -1 designates the original file 11 as the second file (source file). Similarly, the diff command (diff) used in the difference information generation unit 212-2
Command # 2), the original file 11 is used as the first file and the derived file 1 is used as the second file.
2-2 shall be specified.
【0026】まず差分情報生成部212-1内の差分検出
部212aは、diffコマンド#1で指定された2つ
の入力ファイル、即ち派生ファイル12-1と元ファイル
11を先頭行より順次比較してその差異を調べ、そのフ
ァイル間に差異がある場合には、その差異の種類、位置
及び差異のある部分の内容をdiffコマンド出力とし
て送出する。この差分情報生成部212-1内の差分検出
部212aからのdiffコマンド出力は、同じ差分情
報生成部212-1内の情報変換部212bで受け取られ
る。First, the difference detecting unit 212a in the difference information generating unit 212-1 sequentially compares the two input files designated by the diff command # 1, that is, the derivative file 12-1 and the original file 11 from the first line. The difference is checked, and if there is a difference between the files, the type and position of the difference and the content of the difference portion are transmitted as a diff command output. The diff command output from the difference detection unit 212a in the difference information generation unit 212-1 is received by the information conversion unit 212b in the same difference information generation unit 212-1.
【0027】一方、差分情報生成部212-2内の差分検
出部212aは、diffコマンド#2で指定された2
つの入力ファイル、即ち元ファイル11と派生ファイル
12-2を先頭行より順次比較してその差異を調べ、その
ファイル間に差異がある場合には、その差異の種類、位
置及び差異のある部分の内容をdiffコマンド出力と
して送出する。この差分情報生成部212-2内の差分検
出部212aからのdiffコマンド出力は、同じ差分
情報生成部212-2内の情報変換部212bで受け取ら
れる。On the other hand, the difference detection unit 212a in the difference information generation unit 212-2 uses the 2 specified by the diff command # 2.
The two input files, that is, the original file 11 and the derived file 12-2 are sequentially compared from the first line to check the difference. If there is a difference between the files, the type, position and difference portion of the difference are recorded. Send the contents as the diff command output. The diff command output from the difference detection unit 212a in the difference information generation unit 212-2 is received by the information conversion unit 212b in the same difference information generation unit 212-2.
【0028】ここで、diffコマンド出力の一例を図
8に示す。図中、符号81で示されるデータ“2,4c
1,3”は、第1のファイルの2行目から4行目が、第
2のファイルの1行目から3行目までと異なる(ここで
は置換“c”により異なる)ことを示す差異種類・位置
(行の対応)情報である。また、符号82で示される
“<line 2”から“>third line”ま
でのデータ群のうち、区切り記号83より上側のデータ
群は、第1ファイルの2行目から4行目の内容を示し、
区切り記号83より下側のデータ群は、第2のファイル
の1行目から3行目までの内容を示す。なお、差異の種
類として、置換を示す上記“c”のほかに、追加を示す
“a”と削除を示す“d”がある。Here, an example of the output of the diff command is shown in FIG. In the figure, data "2, 4c" indicated by reference numeral 81
1,3 "indicates that the 2nd to 4th lines of the first file are different from the 1st to 3rd lines of the second file (here, they are different depending on the replacement" c "). Position information (correspondence between rows), of the data group from “<line 2” to “> third line” indicated by reference numeral 82, the data group above the delimiter 83 is the first file. Show the contents of the second to fourth lines,
The data group below the delimiter 83 indicates the contents from the first line to the third line of the second file. The types of differences include "a" indicating addition and "d" indicating deletion, in addition to the above "c" indicating replacement.
【0029】さて、差分情報生成部212-1,212-2
内の各情報変換部212bは、同じ差分情報生成部21
2-1,212-2内の差分検出部212aからのdiff
コマンド出力を受け取ると、そのdiffコマンド出力
から、差異の種類及び位置の情報を取り出し、図9に示
すような形式の差分情報(の構造体)内の対応する情報
領域に設定する。即ち情報変換部212bは、例えば図
8のdiffコマンド出力の場合であれば、差異種類・
位置情報81としての“2,4c1,3”中の(第1フ
ァイルと第2ファイルの間の)差異の種類“c”(置
換)をタイプ情報の領域に設定し、“2,4”を第1フ
ァイルの該当部分の開始行S1,終了行E1の領域に設
定し、“1,3”を第2ファイルの該当部分の開始行S
2,終了行E2の領域に設定する。なお、図9の差分情
報(の構造体)には、重なり/包含情報の領域が設けら
れているが、この段階(第1の段階)では、当該重なり
/包含情報の領域への情報設定は行われない。Now, the difference information generators 212-1 and 212-2
Each of the information conversion units 212b in the same difference information generation unit 21
2-1 and diff from the difference detection unit 212a in 212-2
When the command output is received, the difference type and position information is extracted from the diff command output and set in the corresponding information area in (the structure of) the difference information in the format as shown in FIG. That is, in the case of the diff command output of FIG.
The difference type “c” (replacement) (between the first file and the second file) in “2,4c1,3” as the position information 81 is set in the type information area, and “2,4” is set. The start line S1 and the end line E1 of the corresponding part of the first file are set in the area, and "1, 3" is set to the start line S of the corresponding part of the second file.
2. Set in the area of the end row E2. Although the difference information (structure thereof) of FIG. 9 is provided with an overlap / inclusion information area, at this stage (first stage), information setting to the overlap / inclusion information area is not performed. Not done
【0030】このようにして、差分情報生成部212-
1,212-2内の差分検出部212aからの各diff
コマンド出力が、当該差分情報生成部212-1,212
-2内の情報変換部212bにより、図9に示した形式の
(構造体からなる)差分情報211-1,211-2に変換
される。この差分情報211-1,211-2は、差分情報
生成部213に送られる。In this way, the difference information generator 212-
Each diff from the difference detection unit 212a in 1, 212-2
The command output is the difference information generation units 212-1 and 212.
The information conversion unit 212b in -2 converts the difference information 211-1 and 211-2 (of a structure) in the format shown in FIG. The difference information 211-1 and 211-2 are sent to the difference information generation unit 213.
【0031】差分情報生成部213は、差分情報生成部
212-1,212-2(内の情報変換部212b)からの
差分情報211-1,211-2を受け取ると、当該2種類
の差分情報211-1,211-2をもとに、派生ファイル
12-1と派生ファイル12-2の行の対応をとって派生フ
ァイル12-1,12-2間の差分情報(ここでは差分情報
210)を生成する第2段階の差分情報生成を行う。こ
こで差分情報211-1は、派生ファイル12-1と元ファ
イル11との間の差分情報であり、差分情報211-2
は、元ファイル11と派生ファイル12-2との間の差分
情報であることから、第2の段階では、図10に示すよ
うに、元ファイル11を介して派生ファイル12-1と派
生ファイル12-2の行の対応がとられることになる。Upon receiving the difference information 211-1 and 211-2 from the difference information generating units 212-1 and 212-2 (internal information converting unit 212b), the difference information generating unit 213 receives the two types of difference information. Based on 211-1 and 211-2, the difference information between the derivative files 12-1 and 12-2 (here, the difference information 210) is obtained by associating the lines of the derivative file 12-1 and the derivative file 12-2. The second step of generating difference information is performed. Here, the difference information 211-1 is the difference information between the derived file 12-1 and the original file 11, and is the difference information 211-2.
Is the difference information between the original file 11 and the derived file 12-2, so in the second stage, as shown in FIG. Correspondence of -2 line will be taken.
【0032】図10では、派生ファイル12-1の行A,
Bが元ファイル11の行a,bに対応し、この元ファイ
ル11の行a,bが派生ファイル12-2の行a′,b′
に対応している様子が示されている。In FIG. 10, line A of the derivative file 12-1
B corresponds to lines a and b of the original file 11, and lines a and b of this original file 11 are lines a'and b'of the derived file 12-2.
It is shown that it corresponds to.
【0033】ここで、例えば行Aは、元ファイル11
(ソースファイル)に斜線で示したソースコード部分1
01を追加した行番号の先頭である。派生ファイル12
-1は、元ファイル11に斜線で示したソースコード部分
101を追加しただけであるので、行Aから行aへの対
応は容易に求めることができる。具体的には、図10の
例では、図9に示した形式の差分情報211-1の開始行
S1,終了行E1の対として、斜線のソースコード部分
101の開始行(=行A),終了行が設定され、開始行
S2,終了行E2の対として、元ファイル11の行aが
設定されることから、その差分情報211-1により行A
から行aへの対応関係が求められる。Here, for example, the line A is the original file 11
Source code part 1 shown with diagonal lines in (source file)
It is the head of the line number to which 01 is added. Derivation file 12
For -1, only the source code portion 101 indicated by diagonal lines is added to the original file 11, so the correspondence from line A to line a can be easily obtained. Specifically, in the example of FIG. 10, as a pair of the start line S1 and the end line E1 of the difference information 211-1 in the format shown in FIG. 9, the start line (= line A) of the shaded source code portion 101, Since the end line is set and the line a of the original file 11 is set as a pair of the start line S2 and the end line E2, the difference information 211-1 indicates the line A.
To the row a is determined.
【0034】一方、元ファイル11から派生ファイル1
2-2への変更は単純な追加だけではないものとする。こ
の場合でも、派生ファイル12-2は元ファイル11を変
更して生成されたものであることから、差分情報211
-2により行の対応を求めることができる。On the other hand, the derived file 1 from the original file 11
Changes to 2-2 are not limited to simple additions. Even in this case, since the derived file 12-2 is generated by changing the original file 11, the difference information 211
Correspondence of lines can be obtained by -2.
【0035】以上のことから、図10に示した対応関係
は、第1の段階で差分情報生成部212-1,212-2に
より生成された差分情報211-1,211-2を対応付け
ることで調べられる。即ち差分情報生成部213は、差
分情報211-1,211-2により求められる行A→行a
→行a′の対応から、行A→行a′の関係を求め、第2
段階の差分情報210として生成する。この差分情報2
10は、差分情報211-1,211-2と同様に、図9に
示したデータ形式を有している。但し、差分情報210
が生成される第2段階では、差分情報211-1,211
-2が生成される第1段階と異なって、重なり/包含情報
領域への情報設定がなされている。この差分情報210
の重なり/包含情報領域に設定される情報は、元ファイ
ル11から派生ファイル12-1への変更部分(元ファイ
ル11に対して変更を施すことで派生ファイル12-1を
生成した際の変更部分)が、元ファイル11から派生フ
ァイル12-2への変更部分に重なるか否か、或いは含ま
れるか否かを示すものである。From the above, the correspondence relationship shown in FIG. 10 is obtained by associating the difference information 211-1 and 211-2 generated by the difference information generating units 212-1 and 212-2 in the first stage. Be examined. That is, the difference information generation unit 213 determines that the row A → the row a obtained from the difference information 211-1 and 211-2.
→ From the correspondence of row a ′, the relationship of row A → row a ′ is obtained, and the second
It is generated as the difference information 210 of the stage. This difference information 2
Similarly to the difference information 211-1 and 211-2, 10 has the data format shown in FIG. However, the difference information 210
In the second stage in which is generated, the difference information 211-1 and 211
Unlike the first stage in which -2 is generated, information is set in the overlap / inclusion information area. This difference information 210
The information set in the overlap / inclusion information area is the changed part from the original file 11 to the derived file 12-1 (the changed part when the derived file 12-1 is generated by making a change to the original file 11). ) Indicates whether or not the changed portion from the original file 11 to the derived file 12-2 overlaps or is included.
【0036】ここで、重なり/包含情報領域への情報設
定について、図11を参照して説明する。なお、図11
中の斜線部分は元ファイル11に対する変更部分を示
す。まず、元ファイル11を変更して派生ファイル12
-1と派生ファイル12-2を生成した場合、元ファイル1
1から派生ファイル12-1への変更部分と元ファイル1
1から派生ファイル12-2への変更部分の少なくとも一
部が、図11(a)に示すように互いに重なる場合と、
元ファイル11から派生ファイル12-1への変更部分
が、図11(b)に示すように派生ファイル12-2への
変更部分に包含される場合がある。Information setting in the overlap / inclusion information area will be described with reference to FIG. Note that FIG.
The shaded portion in the middle shows the changed portion with respect to the original file 11. First, change the original file 11 and change the derived file 12
-1 and the derived file 12-2 are generated, the original file 1
Changes from 1 to derivative file 12-1 and original file 1
At least some of the changed parts from 1 to the derived file 12-2 overlap each other as shown in FIG.
The modified part from the original file 11 to the derived file 12-1 may be included in the modified part to the derived file 12-2 as shown in FIG.
【0037】そこで差分情報生成部213は、派生ファ
イル12-1の変更開始行が派生ファイル12-2の変更開
始行より前で、且つ派生ファイル12-1の変更終了行が
派生ファイル12-2の変更開始行と変更終了行の間、も
しくは、派生ファイル12-1の変更開始行が派生ファイ
ル12-2の変更開始行と変更終了行の間で、且つ派生フ
ァイル12-1の変更終了行が派生ファイル12-2の変更
終了行より後という条件が成立する場合に(図11
(a)参照)、重なりと判定し、その情報を差分情報2
10中の重なり/包含情報領域に設定する。Therefore, the difference information generation unit 213 determines that the modification start line of the derivative file 12-1 is before the modification start line of the derivative file 12-2 and the modification end line of the derivative file 12-1 is the derivative file 12-2. Between the change start line and the change end line of the derived file 12-1 or between the change start line of the derived file 12-1 and the change start line of the derived file 12-2, and the change end line of the derived file 12-1. If the condition that is after the end-of-change line in the derived file 12-2 is satisfied (Fig. 11)
(See (a)), it is determined that there is an overlap, and the information is difference information 2
It is set in the overlap / inclusion information area in 10.
【0038】同様に差分情報生成部213は、派生ファ
イル12-1の変更開始行及び変更終了行が、いずれも派
生ファイル12-2の変更開始行と変更終了行との間であ
るという条件が成立する場合に(図11(b)参照)、
包含と判定し、その情報を差分情報210中の重なり/
包含情報領域に設定する。Similarly, the difference information generating section 213 has a condition that the modification start line and modification end line of the derivative file 12-1 are both between the modification start line and modification end line of the derivative file 12-2. If it holds (see FIG. 11B),
It is determined to be included, and the information is overlapped in the difference information 210 /
Set in the inclusion information area.
【0039】ところで、変更部分が複数存在する場合、
図9に示した形式の差分情報がその変更箇所の数だけ生
成される。そこで本実施形態では、差分情報は、図12
に示すように、その構造体(図9の形式の基本単位の差
分情報を格納する構造体)をポインタ(前ポインタと次
ポインタ)によって双方向にリンクしたリスト構造を用
いて表現される。この差分情報の構造体は、必要になる
と、例えばオペレーティングシステムが提供するメモリ
割当機能を使用して割り当てられ、図12に示したよう
な差分情報のリスト構造(リンク構造)に追加される。By the way, when there are a plurality of changed parts,
The difference information in the format shown in FIG. 9 is generated by the number of changed portions. Therefore, in the present embodiment, the difference information is as shown in FIG.
As shown in, the structure (structure storing the difference information of the basic unit in the format of FIG. 9) is expressed using a list structure in which pointers (previous pointer and next pointer) are bidirectionally linked. When necessary, this difference information structure is allocated using, for example, the memory allocation function provided by the operating system, and added to the difference information list structure (link structure) as shown in FIG.
【0040】図12において、差分情報構造体中の前ポ
インタ(前へのリンク)は、当該差分情報構造体の直前
にリンクされた差分情報構造体へのポインタである。同
様に、差分情報構造体中の次ポインタ(次へのリンク)
は、当該差分情報構造体の直後にリンクされた差分情報
構造体へのポインタである。これらのポインタは、つな
がる先のない場合には、その旨を示す特別のポインタ
(NULLポインタ)に設定される。明らかなように、
前ポインタがNULLの場合には、該当する構造体が差
分情報リストの先頭であることを示す。同様に、次ポイ
ンタがNULLの場合には、該当する構造体が差分情報
リストの最後尾であることを示す。In FIG. 12, the previous pointer (link to the previous) in the difference information structure is a pointer to the difference information structure linked immediately before the difference information structure. Similarly, the next pointer (link to the next) in the difference information structure
Is a pointer to the difference information structure linked immediately after the difference information structure. When there is no connection destination, these pointers are set to special pointers (NULL pointers) indicating that fact. As is clear
When the previous pointer is NULL, it indicates that the corresponding structure is the head of the difference information list. Similarly, when the next pointer is NULL, it indicates that the corresponding structure is the end of the difference information list.
【0041】本実施形態では、第1段階及び第2段階の
各差分情報生成において保持すべき情報が異なるが、差
分情報構造体のテンプレート(形)は同じものを用いて
いる。そして、各段階で使用されないメンバ(情報領
域)には例えば“0”(ポインタの場合にはNULL)
を格納するようにしている。In this embodiment, although the information to be held in each of the difference information generation in the first stage and the second stage is different, the same template (shape) is used for the difference information structure. Then, for example, "0" (NULL in the case of a pointer) is set to the member (information area) that is not used at each stage.
To store.
【0042】なお本実施形態では、差分情報(の構造
体)中のタイプ情報領域には、有効な値が設定されてい
るが、使用されていない。その理由は、元ファイル11
から派生ファイル12-1を生成する段階で行われる変更
は追加(“a”)のみを原則としているためであり、自
動バージョンアップ機構2においても追加のみの場合を
対象に処理を行うように構成されている。In this embodiment, a valid value is set in the type information area in (the structure of) the difference information, but it is not used. The reason is that the original file 11
This is because the change made at the stage of generating the derived file 12-1 from is basically only addition (“a”), and the automatic version upgrade mechanism 2 is configured to perform processing only for addition. Has been done.
【0043】以上に述べた(差分情報生成機構21内
の)差分情報生成部213での第2段階の差分情報生成
処理の手順を図13のフローチャートに示す。この図1
3のフローチャートに示すように、差分情報生成部21
3は、差分情報生成部212-1,212-2により生成さ
れた(図12に示したような構造の)差分情報211-
1,211-2を参照し、図10に示したような、元ファ
イル11を介して派生ファイル12-1と派生ファイル1
2-2の行番号を対応付ける操作を行い(ステップS
1)、対応する行があるならば(ステップS2)、その
行番号の対応情報を図9に示した差分情報の構造体に格
納する(ステップS3)。この際、差分情報生成部21
3は、前記した重なり/包含のチェックを行い、その結
果に応じて差分情報の構造体中の重なり/包含情報領域
への情報設定を行う。差分情報生成部213は、以上の
処理を、差分情報211-1,211-2の最後まで(ステ
ップS4)繰り返す。なお、対応する行がない場合に
は、エラーメッセージが表示される(ステップS5)。A flowchart of FIG. 13 shows the procedure of the second stage difference information generation processing in the difference information generation unit 213 (in the difference information generation mechanism 21) described above. This figure 1
As shown in the flowchart of FIG.
3 is the difference information 211- (having the structure shown in FIG. 12) generated by the difference information generation units 212-1 and 212-2.
1, 211-2, the derived file 12-1 and the derived file 1 through the original file 11 as shown in FIG.
Perform the operation to associate the line numbers of 2-2 (step S
1) If there is a corresponding line (step S2), the corresponding information of the line number is stored in the difference information structure shown in FIG. 9 (step S3). At this time, the difference information generation unit 21
3 checks the above-mentioned overlap / inclusion, and sets the information in the overlap / inclusion information area in the structure of the difference information according to the result. The difference information generation unit 213 repeats the above processing until the end of the difference information 211-1 and 211-2 (step S4). If there is no corresponding line, an error message is displayed (step S5).
【0044】さて、(差分情報生成機構21内の)差分
情報生成部213での第2段階の差分情報生成処理で生
成された差分情報210はマージ機構22に送られる。
マージ機構22には、この差分情報210の生成のもと
になった派生ファイル12-1,12-2も送られる。マー
ジ機構22は、これら差分情報210及び派生ファイル
12-1,12-2をもとに、派生ファイル12-2に対して
派生ファイル12-1の変更部分を追加していく形で出力
ファイル220を作成するマージ操作を行う。以下、こ
のマージ機構22によるマージ操作の詳細を、図14の
動作説明図と図15及び図16のフローチャートを参照
して説明する。Now, the difference information 210 generated by the difference information generating process of the second stage in the difference information generating unit 213 (in the difference information generating mechanism 21) is sent to the merging mechanism 22.
The derived files 12-1 and 12-2 that are the basis of the generation of the difference information 210 are also sent to the merge mechanism 22. The merging mechanism 22 adds the changed portion of the derivative file 12-1 to the derivative file 12-2 based on the difference information 210 and the derivative files 12-1 and 12-2 and outputs the output file 220. Perform a merge operation to create the. Details of the merging operation by the merging mechanism 22 will be described below with reference to the operation explanatory diagram of FIG. 14 and the flowcharts of FIGS. 15 and 16.
【0045】まずマージ機構22は、(差分情報生成機
構21内の)差分情報生成部213での第2段階の差分
情報生成処理で生成された差分情報210の示す行番号
対応情報に従って、派生ファイル12-2のソースコード
のうち、派生ファイル12-1の変更開始行に対応する行
の直前(追加部分の直前)まで(図14の例では、派生
ファイル12-2中の先頭から始まるソースコード無変更
部分13a)を、出力ファイル220の一部(ここでは
先頭部分)として磁気ディスク装置1に出力する(ステ
ップS11)。First, the merge mechanism 22 follows the line number correspondence information indicated by the difference information 210 generated by the difference information generating process of the second stage in the difference information generating unit 213 (in the difference information generating mechanism 21), in accordance with the derived file. In the source code of 12-2, up to the line immediately before the change start line of the derived file 12-1 (immediately before the added portion) (in the example of FIG. 14, the source code starting from the beginning in the derived file 12-2). The unmodified portion 13a) is output to the magnetic disk device 1 as a part (here, the head part) of the output file 220 (step S11).
【0046】次にマージ機構22は、派生ファイル12
-1の変更部分の出力処理(ステップS12)を次のよう
に行う。まずマージ機構22は、該当する差分情報21
0の構造体中の重なり/包含情報を調べ(ステップS2
1)、(図11に示したような)重なりまたは包含が発
生している場合には、その旨を示すコメント及び特定の
文(ここで#ifdef文)を出力ファイル220の後
続情報として磁気ディスク装置1に出力する(ステップ
S22)。一方、重なりまたは包含のいずれも発生して
いない場合には、このステップS22はスキップされ
る。Next, the merging mechanism 22 uses the derived file 12
The output process (step S12) of the changed part of -1 is performed as follows. First, the merge mechanism 22 determines that the corresponding difference information 21
Check the overlap / inclusion information in the structure of 0 (step S2
1), if overlap or inclusion (as shown in FIG. 11) occurs, a comment indicating that and a specific statement (here #ifdef statement) are used as subsequent information of the output file 220 on the magnetic disk. The data is output to the device 1 (step S22). On the other hand, if neither overlapping nor inclusion has occurred, this step S22 is skipped.
【0047】次にマージ機構22は、派生ファイル12
-1の変更開始行から(当該変更開始行と対をなす)変更
終了行までの変更部分(図14の例では、派生ファイル
12-1中の変更開始行SAから変更終了行EAまでの変
更部分13A)のソースコードを出力ファイル220の
後続情報として磁気ディスク装置1に出力する(ステッ
プS23)。この際、磁気ディスク装置1に出力される
変更部分をなす各行の行頭には、自動バージョンアップ
機構2により追加されたことを示す所定のマーク、例え
ば“>>”が付加される。Next, the merging mechanism 22 uses the derived file 12
-1 from the change start line to the change end line (paired with the change start line) (in the example of FIG. 14, the change start line SA to the change end line EA in the derived file 12-1) The source code of the portion 13A) is output to the magnetic disk device 1 as subsequent information of the output file 220 (step S23). At this time, a predetermined mark, for example, ">>", which indicates that the line has been added by the automatic version upgrade mechanism 2, is added to the beginning of each line forming the changed portion output to the magnetic disk device 1.
【0048】次にマージ機構22は、再び上記した差記
分情報210の構造体中の重なり/包含情報を調べ(ス
テップS24)、重なりまたは包含が発生している場合
には、その旨を示すコメント及び上記ステップS22で
開いた#ifdefを閉じるための特定の文(ここで#
endif文)を出力ファイル220の後続情報として
磁気ディスク装置1に出力する(ステップS25)。一
方、重なりまたは包含のいずれも発生していない場合に
は、このステップS25はスキップされる。Next, the merging mechanism 22 again checks the overlap / inclusion information in the structure of the above-mentioned difference registration information 210 (step S24), and if overlap or inclusion occurs, it indicates that fact. A comment and a specific sentence for closing #ifdef opened in step S22 (here, #
endif sentence) is output to the magnetic disk device 1 as subsequent information of the output file 220 (step S25). On the other hand, when neither overlapping nor inclusion has occurred, this step S25 is skipped.
【0049】以上により、ステップS12における派生
ファイル12-1の変更部分の出力処理は終了となる。マ
ージ機構22は、一連の変更部分出力処理(ステップS
12)を終了すると、派生ファイル12-1での変更部分
が未だ残っているか否かを調べ(ステップS13)、残
っているならば、ステップS11に戻る。With the above, the output process of the changed portion of the derived file 12-1 in step S12 is completed. The merging mechanism 22 performs a series of changed part output processing (step S
When the step 12) is completed, it is checked whether or not the changed part in the derived file 12-1 still remains (step S13), and if it remains, the process returns to step S11.
【0050】このようにしてマージ機構22は、派生フ
ァイル12-1の終りまで(ステップS13)、ステップ
S11,S12を繰り返す。これにより、図14の例で
は、派生ファイル12-2中の無変更部分13bと派生フ
ァイル12-1中の変更開始行SBから変更終了行EBま
での変更部分13Bとが続けて出力される。In this way, the merging mechanism 22 repeats steps S11 and S12 until the end of the derived file 12-1 (step S13). As a result, in the example of FIG. 14, the unmodified portion 13b in the derivative file 12-2 and the modified portion 13B from the modification start line SB to the modification end line EB in the derivative file 12-1 are continuously output.
【0051】そして派生ファイル12-1での変更部分を
全て処理すると、マージ機構22は、派生ファイル12
-2中の残りの無変更部分(図14の例では、派生ファイ
ル12-2中の無変更部分13c)を出力ファイル220
の最後の情報として磁気ディスク装置1に出力する(ス
テップS14)。When all the changed parts in the derived file 12-1 have been processed, the merge mechanism 22 determines that the derived file 12-1 has been processed.
-2, the remaining unmodified part (in the example of FIG. 14, the unmodified part 13c in the derived file 12-2) is output to the output file 220.
Is output to the magnetic disk device 1 as the last information (step S14).
【0052】以上の結果、磁気ディスク装置1には、元
ファイル11から派生した2つの派生ファイル12-1,
12-2のうちの一方の派生ファイル12-2を基本とし、
そのソースコードにもう一方の派生ファイル12-1での
変更部分を追加していく形でマージされた新バージョン
のソースコードの出力ファイル220が生成される。As a result, the magnetic disk device 1 has two derived files 12-1, derived from the original file 11.
Based on one of the derived files 12-2 of 12-2,
The output file 220 of the new version of the source code is generated by merging the source code with the modified part of the other derived file 12-1.
【0053】このように本実施形態では、ソースコード
のマージが自動的に行われる。但し、ここでのマージの
方法においては、既に述べたように、ファイルの中身に
ついて一切考慮していない。この場合、作成されたファ
イル(出力ファイル220)の妥当性については保証さ
れないことから、ユーザが改めてチェックを行う必要が
ある。As described above, in this embodiment, the source code is automatically merged. However, in the merging method here, as already described, the contents of the file are not considered at all. In this case, since the validity of the created file (output file 220) is not guaranteed, the user needs to check again.
【0054】そこで本実施形態では、ユーザによる上記
の妥当性のチェックを可能とするために、既に述べたよ
うに、マージ動作で追加したソースコード変更部分の各
行の行頭に特別のマーク“>>”を付加している。Therefore, in the present embodiment, in order to enable the above-mentioned validity check by the user, as described above, a special mark ">>" is added to the beginning of each line of the source code change portion added by the merge operation. "Is added.
【0055】このマーク“>>”を付加することで、出
力ファイル220中の追加部分を、テキストエディタな
どを用いて簡単に発見できる。しかも、ユーザがチェッ
クして上記マークを削除しない限り、コンパイラにおい
て上記マークをエラーと判断することから、出力ファイ
ル220をコンパイルできない。このためユーザは、自
動バージョンアップ機構2(中のマージ機構22)によ
って追加された行(ソースコード行)の正当性を評価
し、編集を行わなければならない。この機能により、ユ
ーザにより正当性が評価されていないソースコードを誤
って使用してしまうことが防止できる。By adding the mark ">>", the additional portion in the output file 220 can be easily found by using a text editor or the like. Moreover, unless the user checks and deletes the mark, the compiler determines that the mark is an error, and thus the output file 220 cannot be compiled. Therefore, the user must evaluate the validity of the line (source code line) added by the automatic version upgrade mechanism 2 (the merging mechanism 22 in the inside) and edit the line. With this function, it is possible to prevent accidental use of source code whose legitimacy has not been evaluated by the user.
【0056】以上に述べたように本実施形態において
は、次に列挙する効果を得ることができる。 (1)元ファイル11から派生した2つの派生ファイル
12-1,12-2のうちの一方(ここでは派生ファイル1
2-2)を基本とし、そのソースコードにもう一方(ここ
では派生ファイル12-1)の変更部分を追加していく形
でマージを行うことができる。これにより、マージ後の
ソースコードでの不具合の発生を減少することができ
る。 (2)元ファイル11を参照することにより、派生ファ
イル12-1と派生ファイル12-2がそれぞれ独自に変更
を行った箇所を特定できる。また、それにより変更の衝
突箇所を特定できる。 (3)マージ操作が一括処理で行われ、且つそのマージ
操作で追加された部分については、その旨を示すマーク
がソースコード上に残されるため、変更箇所の正当性が
簡単に検証できる。As described above, in this embodiment, the effects listed below can be obtained. (1) One of the two derived files 12-1 and 12-2 derived from the original file 11 (here, the derived file 1
Based on 2-2), the source code can be merged by adding the modified part of the other (here, derived file 12-1). This can reduce the occurrence of defects in the source code after merging. (2) By referring to the original file 11, it is possible to specify the locations where the derivative file 12-1 and the derivative file 12-2 have changed independently. In addition, it is possible to identify the change collision point. (3) The merge operation is performed as a batch process, and the mark added to the portion added by the merge operation is left on the source code. Therefore, the correctness of the changed portion can be easily verified.
【0057】なお、前記実施形態では、派生ファイル1
2-1と元ファイル11とを比較して差分情報211-1を
生成すると共に、元ファイル11と派生ファイル12-2
とを比較して差分情報211-2を生成し、その2つの差
分情報211-1,211-2(をもとに生成される差分情
報210)を用いてマージするものとして説明したが、
以下に述べるようにこれに限るものではない。 [第2の実施形態]図17は本発明の第2の実施形態に
係る(ソースコード自動バージョンアップ装置の中心を
なす)自動バージョンアップ機構の機能構成を示すブロ
ック図である。なお、図7と同一部分には同一符号を付
してある。In the above embodiment, the derived file 1
2-1 and the original file 11 are compared to generate difference information 211-1, and the original file 11 and the derived file 12-2
It has been described that the difference information 211-2 is generated by comparing with the two and the two pieces of difference information 211-1 and 211-2 (the difference information 210 generated based on the difference information) are merged.
As described below, the present invention is not limited to this. [Second Embodiment] FIG. 17 is a block diagram showing the functional arrangement of an automatic version upgrade mechanism (mainly the source code automatic version upgrade apparatus) according to the second embodiment of the present invention. The same parts as those in FIG. 7 are designated by the same reference numerals.
【0058】この図17の構成の特徴は、図7中の差分
情報生成機構21に代えて、派生ファイル12-1と派生
ファイル12-2とを比較することで差分情報214を生
成する機能(を持つ図4中の差分情報生成部212-1,
212-2と同様の差分情報生成部)が追加された差分情
報生成機構31を設けると共に、図7中のマージ機構2
2に代えてマージ機構32を設けることで、元ファイル
12と各派生ファイル12-1,12-2の間の差分情報2
11-1,211-2だけを用いてマージする場合よりも、
マージ機構32において正確なマージが行えるようにし
た点にある。The feature of the configuration of FIG. 17 is that, instead of the difference information generation mechanism 21 in FIG. 7, a function of generating difference information 214 by comparing the derived file 12-1 and the derived file 12-2 ( Difference information generation unit 212-1 in FIG.
A difference information generation mechanism 31 to which a difference information generation unit similar to that of 212-2 is added is provided, and the merge mechanism 2 in FIG.
By providing the merging mechanism 32 instead of 2, the difference information 2 between the original file 12 and each of the derived files 12-1 and 12-2
Compared to the case of merging using only 11-1 and 211-2,
The point is that the merging mechanism 32 can perform accurate merging.
【0059】図17の構成において、差分情報生成機構
31に設けられた派生ファイル間の差分情報を生成する
差分情報生成部(図示せず)は、派生ファイル12-1と
派生ファイル12-2の間の差異を調べることで、その差
異及び対応する位置関係を示す差分情報214を生成
し、当該差分情報214を図9に示したデータ構造の差
分情報構造体に設定する。In the configuration shown in FIG. 17, a difference information generating unit (not shown) for generating difference information between derived files provided in the difference information generating mechanism 31 includes a derived file 12-1 and a derived file 12-2. The difference information 214 indicating the difference and the corresponding positional relationship is generated by checking the difference between them, and the difference information 214 is set in the difference information structure of the data structure shown in FIG.
【0060】マージ機構32は、前記第1の実施形態に
おけるマージ機構22と同様のマージ処理を行う。即ち
マージ機構32は、上記2つの差分情報211-1,21
1-2をもとに生成された最終的な差分情報210から行
の対応関係を求め、派生ファイル12-2のソースコード
に派生ファイル12-1での変更部分を追加していくマー
ジを行って出力ファイル220を生成する。ここでマー
ジ機構32は、派生ファイル12-1と派生ファイル12
-2の間の差分情報214を参照することで、その差分情
報214と出力ファイル220との関係からマージの妥
当性を検証する。The merge mechanism 32 performs the same merge process as the merge mechanism 22 in the first embodiment. That is, the merge mechanism 32 uses the two pieces of difference information 211-1 and 21-2.
The correspondence of the line is obtained from the final difference information 210 generated based on 1-2, and the changed part in the derived file 12-1 is added to the source code of the derived file 12-2. To generate the output file 220. Here, the merge mechanism 32 uses the derived file 12-1 and the derived file 12
By referring to the difference information 214 between -2, the validity of the merge is verified from the relationship between the difference information 214 and the output file 220.
【0061】このように本実施形態においては、派生フ
ァイル12-1と派生ファイル12-2の間の差分情報21
4を求め、この差分情報214をマージ機構32が参照
することで、マージの正当性の検証がより詳細に行える
ようになり、出力ファイル220の正確さが増加する。 [第3の実施形態]図18は本発明の第3の実施形態に
係る(ソースコード自動バージョンアップ装置の中心を
なす)自動バージョンアップ機構の機能構成を示すブロ
ック図である。なお、図7と同一部分には同一符号を付
してある。As described above, in the present embodiment, the difference information 21 between the derived file 12-1 and the derived file 12-2.
4 is obtained and the difference information 214 is referred to by the merge mechanism 32, so that the correctness of the merge can be verified in more detail, and the accuracy of the output file 220 is increased. [Third Embodiment] FIG. 18 is a block diagram showing the functional arrangement of an automatic version upgrade mechanism (center of the automatic source code upgrade apparatus) according to the third embodiment of the present invention. The same parts as those in FIG. 7 are designated by the same reference numerals.
【0062】この図18の構成の特徴は、図7の構成
に、出力ファイル220の生成後に、そのファイル22
0の正当性を評価するための比較検証機構23を追加し
た点にある。The characteristic of the configuration of FIG. 18 is that in the configuration of FIG.
The point is that a comparison verification mechanism 23 for evaluating the correctness of 0 is added.
【0063】この図18の構成において、比較検証機構
23は、出力ファイル220と入力ファイルである元フ
ァイル11及び派生ファイル12-1,12-2を比較し、
出力ファイル220が正しくマージされているか否かを
検証する。In the configuration of FIG. 18, the comparison and verification mechanism 23 compares the output file 220 with the original file 11 and the derived files 12-1 and 12-2 which are the input files,
Verify whether the output file 220 has been properly merged.
【0064】このように本実施形態においては、比較検
証機構23が出力ファイル220の正当性を評価するこ
とから、ユーザが出力ファイル220を検証する際の作
業を低減させる。これにより、出力ファイル220の正
当性及び正確性が向上する。 [第4の実施形態]図19は本発明の第4の実施形態に
係るソースコード自動バージョンアップ装置の全体構成
を示すブロック図である。なお、図1と同一部分には同
一符号を付してある。As described above, in the present embodiment, the comparison verification mechanism 23 evaluates the correctness of the output file 220, so that the work for the user to verify the output file 220 is reduced. This improves the legitimacy and accuracy of the output file 220. [Fourth Embodiment] FIG. 19 is a block diagram showing the overall structure of a source code automatic version upgrade apparatus according to a fourth embodiment of the present invention. The same parts as those in FIG. 1 are denoted by the same reference numerals.
【0065】この図19の構成の特徴は、図1中の自動
バージョンアップ機構2に代えて、関数リスト生成機構
43が追加された自動バージョンアップ機構4を用い、
差分情報の生成が関数毎に行えるようにした点にある。The feature of the configuration of FIG. 19 is that an automatic version upgrade mechanism 4 to which a function list generation mechanism 43 is added is used instead of the automatic version upgrade mechanism 2 in FIG.
The difference is that the generation of difference information can be performed for each function.
【0066】図19の構成において、自動バージョンア
ップ機構4内の関数リスト生成機構43は、(図1中の
差分情報生成機構21に相当する)差分情報生成機構4
1の前段に設けられている、この関数リスト生成機構4
3は、磁気ディスク装置1から読み出される各入力ファ
イル(元ファイル11及び派生ファイル12-1,12-
2)を関数毎に分解して入力ファイル別の関数リストを
生成し、差分情報生成機構41に渡す。In the configuration of FIG. 19, the function list generation mechanism 43 in the automatic version upgrade mechanism 4 is the difference information generation mechanism 4 (corresponding to the difference information generation mechanism 21 in FIG. 1).
This function list generation mechanism 4 provided in the preceding stage of 1.
Reference numeral 3 denotes each input file (the original file 11 and the derived files 12-1, 12- read from the magnetic disk device 1).
2) is decomposed for each function to generate a function list for each input file, and the function list is passed to the difference information generation mechanism 41.
【0067】差分情報生成機構41は、関数リスト生成
機構43から渡された関数リストを比較し、差分情報を
生成する。この差分情報生成の手順は、行毎ではなくて
関数毎の比較が行われる点を除けば、前記第1の実施形
態における差分情報生成機構21による差分情報生成と
同様である。差分情報生成機構41により生成された差
分情報はマージ機構42に渡される。The difference information generation mechanism 41 compares the function lists passed from the function list generation mechanism 43 and generates difference information. This difference information generation procedure is the same as the difference information generation by the difference information generation mechanism 21 in the first embodiment except that the comparison is performed not for each row but for each function. The difference information generated by the difference information generation mechanism 41 is passed to the merge mechanism 42.
【0068】マージ機構42は、入力された差分情報を
もとに、ソースコードのマージを関数毎に行う。ここ
で、単一の関数が2個以上に分割されている場合、或い
はこれとは逆に2個以上の関数が単一の関数にまとめら
れている場合には、複数の関数間でのマージが行われ
る。The merging mechanism 42 merges the source code for each function based on the input difference information. Here, when a single function is divided into two or more, or conversely, two or more functions are combined into a single function, merging between multiple functions Is done.
【0069】このように本実施形態においては、マージ
を関数毎に行うことから、機能単位のマージが実現され
る。ある機能単位内での修正はミクロに見ると異なって
いても、マクロに見ると同様の処理を行っていることが
多いため、本実施形態のような機能単位のマージが有効
である。その結果、出力されるソースコードの正確性が
向上する。As described above, in the present embodiment, since the merging is performed for each function, the merging of functional units is realized. Even if the correction within a certain functional unit is different from the microscopic point of view, the same processing is often performed from the macroscopic point of view, and thus the merging of the functional units as in the present embodiment is effective. As a result, the accuracy of the output source code is improved.
【0070】なお、関数リスト生成機構43に、関数以
外の要素のリストを生成する処理機能を付加するように
してもよい。ここで関数以外の要素としては、変数、マ
クロ(置き換え)、コメント及びプリプロセッサ命令
(コンパイルの前にユーザが指示できる命令)などであ
る。この処理機能により関数以外のリストが生成された
場合には、差分情報生成機構41及びマージ機構42で
は、それらの情報も関数リストと同様に参照する。 [第5の実施形態]図20は本発明の第5の実施形態に
係るソースコード自動バージョンアップ装置の全体構成
を示すブロック図である。なお、図1と同一部分には同
一符号を付してある。The function list generating mechanism 43 may be provided with a processing function for generating a list of elements other than functions. Here, elements other than functions include variables, macros (replacement), comments, and preprocessor instructions (instructions that the user can instruct before compilation). When a list other than a function is generated by this processing function, the difference information generating mechanism 41 and the merging mechanism 42 also refer to such information as in the function list. [Fifth Embodiment] FIG. 20 is a block diagram showing the overall structure of a source code automatic version upgrade apparatus according to the fifth embodiment of the present invention. The same parts as those in FIG. 1 are denoted by the same reference numerals.
【0071】この図20の構成の特徴は、図1中の自動
バージョンアップ機構2に代えて、定型置換情報生成機
構53が追加された自動バージョンアップ機構5を用
い、常に同じパターンで変更が行われている箇所のパタ
ーン情報を定型置換情報として生成してマージ操作に利
用できるようにした点にある。The feature of the configuration in FIG. 20 is that the automatic version upgrade mechanism 2 in FIG. 1 is replaced with an automatic version upgrade mechanism 5 to which a routine replacement information generation mechanism 53 is added, and changes are always made in the same pattern. The point is that the pattern information of the broken portion is generated as the standard replacement information and can be used for the merge operation.
【0072】図20の構成において、自動バージョンア
ップ機構5内の定型置換情報生成機構53は、磁気ディ
スク装置1から読み出される各入力ファイル間(元ファ
イル11と派生ファイル12-1の間、及び元ファイル1
1と派生ファイル12-2の間)で常に同じパターンで変
更が行われている箇所を探し、その箇所の元のソースコ
ードパターン(前パターンと称する)と変更後のパター
ン(後パターンと称する)の対応情報を定型置換情報5
30としてマージ機構52に渡す。このマージ機構52
には、差分情報生成機構21により前記第1の実施形態
と同様にして生成される差分情報210も渡される。In the configuration of FIG. 20, the fixed form replacement information generating mechanism 53 in the automatic version upgrade mechanism 5 operates between the input files read from the magnetic disk device 1 (between the original file 11 and the derived file 12-1 and the original file 11-1). File 1
1) and the derived file 12-2), always look for the place where the change is made with the same pattern, and the original source code pattern (called the previous pattern) and the changed pattern (called the latter pattern) of that place. Corresponding information of the standard replacement information 5
It is passed to the merge mechanism 52 as 30. This merging mechanism 52
Also, the difference information 210 generated by the difference information generation mechanism 21 in the same manner as in the first embodiment is also passed to.
【0073】マージ機構52は、(前記第1の実施形態
におけるマージ機構22と同様に)差分情報生成機構2
1からの差分情報210に基づくマージ操作を行う。ま
たマージ機構52は、このマージ操作と並行して、定型
置換情報生成機構53からの定型置換情報530を参照
し、マージ操作の対象となるソースコード部分に当該定
型置換情報530中の前パターンに一致する箇所を検出
した際には、その箇所を定型置換すべき部分であるとし
て、その前パターンと対をなす定型置換情報530中の
後パターンである定型パターンへの置換を行う。The merging mechanism 52 is the same as the merging mechanism 22 in the first embodiment, and the difference information generating mechanism 2 is used.
The merge operation based on the difference information 210 from 1 is performed. Further, the merging mechanism 52 refers to the canonical replacement information 530 from the canonical replacement information generation mechanism 53 in parallel with this merging operation, and sets the source pattern portion to be merged to the previous pattern in the canonical replacement information 530. When a matching portion is detected, it is determined that the portion is to be subjected to the standard replacement, and the replacement is performed to the standard pattern which is the rear pattern in the standard replacement information 530 paired with the preceding pattern.
【0074】このように本実施形態においては、例えば
派生ファイル12-1に新しい処理が追加され、その追加
部分に定型的に置換すべきソースコードが含まれている
場合であれば、その箇所が定型パターンに自動的に置換
されるため、ユーザがそのような箇所を探して修正する
必要がなくなる。As described above, in the present embodiment, for example, when a new process is added to the derived file 12-1 and the added portion includes the source code to be routinely replaced, that portion is deleted. Since the standard pattern is automatically replaced, the user does not have to search for such a part and correct it.
【0075】[0075]
【発明の効果】以上詳述したように本発明によれば、ソ
ースコードの元ファイルから派生した2つの派生ファイ
ルの一方に、もう一方のファイルの変更箇所を取り込ん
で新バージョンを作成するマージ処理が自動的に行え
る。As described above in detail, according to the present invention, a merge process for creating a new version by incorporating the changed portion of the other file into one of two derived files derived from the source file of the source code. Can be done automatically.
【図1】本発明の第1の実施形態に係るソースコード自
動バージョンアップ装置の全体構成を示すブロック図。FIG. 1 is a block diagram showing an overall configuration of a source code automatic version upgrade device according to a first embodiment of the present invention.
【図2】図1中の各ファイル11,12-1,12-2がソ
ースコードからなることを説明するための図。FIG. 2 is a view for explaining that each file 11, 12-1, 12-2 in FIG. 1 is composed of source code.
【図3】図1中の自動バージョンアップ機構2における
処理の流れとデータの流れを説明するための図。FIG. 3 is a diagram for explaining the flow of processing and the flow of data in the automatic version upgrade mechanism 2 in FIG.
【図4】図1中の差分情報生成機構21の内部の機能構
成を示すブロック図。4 is a block diagram showing a functional configuration inside a difference information generation mechanism 21 in FIG.
【図5】図4中の差分情報生成部212-1,212-2の
内部の機能構成を示すブロック図。5 is a block diagram showing the internal functional configuration of difference information generation units 212-1 and 212-2 in FIG.
【図6】同実施形態で適用されるdiffコマンドの形
式を示す図。FIG. 6 is a diagram showing a format of a diff command applied in the embodiment.
【図7】同実施形態で適用されるファイルマージ方法の
概要を説明するために、図1中の自動バージョンアップ
機構2の機能構成を示す図。。FIG. 7 is a diagram showing a functional configuration of an automatic version upgrade mechanism 2 in FIG. 1 for explaining an outline of a file merging method applied in the embodiment. .
【図8】同実施形態におけるdiffコマンド出力の一
例を示す図。FIG. 8 is a diagram showing an example of a diff command output in the same embodiment.
【図9】同実施形態で適用される差分情報(の構造体)
のデータ構造を示す図。FIG. 9 is (a structure of) difference information applied in the embodiment.
The figure which shows the data structure of FIG.
【図10】図4中の差分情報生成部213により、元フ
ァイルを介して2つの派生ファイルの行の対応をとる場
合の動作を説明するための図。FIG. 10 is a diagram for explaining the operation when the difference information generation unit 213 in FIG. 4 associates the lines of two derived files via the original file.
【図11】派生ファイル12-1,12-2の変更部分の重
なりと包含関係を説明するための図。FIG. 11 is a diagram for explaining overlapping and inclusion relation of changed parts of the derived files 12-1 and 12-2.
【図12】同実施形態における差分情報の構造体のリス
ト構造を説明するための図。FIG. 12 is an exemplary view for explaining a list structure of difference information structures in the embodiment.
【図13】図4中の差分情報生成部213により差分情
報210を生成する第2段階の差分情報生成処理を説明
するためのフローチャート。FIG. 13 is a flowchart for explaining a second stage difference information generation process of generating difference information 210 by a difference information generation unit 213 in FIG.
【図14】同実施形態におけるマージ機構22によるマ
ージ操作の動作説明図。FIG. 14 is an operation explanatory view of a merge operation by the merge mechanism 22 in the same embodiment.
【図15】マージ機構22によるマージ操作の手順を示
すフローチャート。FIG. 15 is a flowchart showing the procedure of a merge operation by the merge mechanism 22.
【図16】図15のフローチャート中の変更部分出力処
理(ステップS12)の詳細な手順を示すフローチャー
ト。16 is a flowchart showing a detailed procedure of a changed portion output process (step S12) in the flowchart of FIG.
【図17】本発明の第2の実施形態に係る(ソースコー
ド自動バージョンアップ装置の中心をなす)自動バージ
ョンアップ機構の機能構成を示すブロック図。FIG. 17 is a block diagram showing the functional configuration of an automatic version upgrade mechanism (mainly the source code automatic version upgrade apparatus) according to the second embodiment of the present invention.
【図18】本発明の第3の実施形態に係る(ソースコー
ド自動バージョンアップ装置の中心をなす)自動バージ
ョンアップ機構の機能構成を示すブロック図。FIG. 18 is a block diagram showing the functional configuration of an automatic version upgrade mechanism (mainly the source code automatic version upgrade apparatus) according to a third embodiment of the present invention.
【図19】本発明の第4の実施形態に係るソースコード
自動バージョンアップ装置の全体構成を示すブロック
図。FIG. 19 is a block diagram showing the overall configuration of a source code automatic version upgrade device according to a fourth embodiment of the present invention.
【図20】本発明の第5の実施形態に係るソースコード
自動バージョンアップ装置の全体構成を示すブロック
図。FIG. 20 is a block diagram showing an overall configuration of a source code automatic version upgrade device according to a fifth embodiment of the present invention.
【図21】従来のファイルマージ方法の概要を説明する
ための図。FIG. 21 is a diagram for explaining an outline of a conventional file merge method.
1…磁気ディスク装置、2,4,5…自動バージョンア
ップ機構、11…元ファイル、12-1…派生ファイル
(第1の派生ファイル)、12-2…派生ファイル(第2
の派生ファイル)、21,31,41…差分情報生成機
構、22,32,42,52…マージ機構、23…比較
検証機構、43…関数リスト生成機構、53…定型置換
情報生成機構、210…差分情報(第3の差分情報)、
211-1…差分情報(第1の差分情報)、211-2…差
分情報(第2の差分情報)、212-1,212-2,21
3…差分情報生成部、212a…差分検出部、212b
…情報変換部、214…差分情報(第4の差分情報)、
220…出力ファイル、530…定型置換情報。1 ... Magnetic disk device, 2, 4, 5 ... Automatic version upgrade mechanism, 11 ... Original file, 12-1 ... Derived file (first derived file), 12-2 ... Derived file (second)
Derived file), 21, 31, 41 ... Difference information generation mechanism, 22, 32, 42, 52 ... Merge mechanism, 23 ... Comparison verification mechanism, 43 ... Function list generation mechanism, 53 ... Fixed replacement information generation mechanism, 210 ... Difference information (third difference information),
211-1 ... Difference information (first difference information), 211-2 ... Difference information (second difference information), 212-1, 212-2, 21
3 ... Difference information generating unit, 212a ... Difference detecting unit, 212b
... information conversion unit, 214 ... difference information (fourth difference information),
220 ... Output file, 530 ... Regular replacement information.
Claims (10)
イルから派生した第1の派生ファイルの間の差異を調べ
て、対応する位置関係を示す第1の差分情報を生成する
と共に、前記元ファイルと当該元ファイルから派生した
第2の派生ファイルの間の差異を調べて、対応する位置
関係を示す第2の差分情報を生成する第1の工程と、 前記第1の工程で生成された第1及び第2の差分情報か
ら、前記第1及び第2の派生ファイル間の差異に対応す
る位置関係を示す第3の差分情報を生成する第2の工程
と、 前記第2の工程で生成された第3の差分情報と、前記第
1及び第2の派生ファイルをもとに、前記第1及び第2
の派生ファイルのいずれか一方のファイルに、他方のフ
ァイルの変更部分を取り込む形でソースコードのマージ
を行い、バージョンアップされた出力ファイルを生成す
る第3の工程とを具備することを特徴とするソースコー
ド自動バージョンアップ方法。1. A difference between a source code source file and a first derived file derived from the source file is checked to generate first difference information indicating a corresponding positional relationship, and the source file and the source file are also used. A first step of checking the difference between the second derived files derived from the original file and generating second difference information indicating the corresponding positional relationship; and a first step generated in the first step. And a second step of generating third difference information indicating a positional relationship corresponding to the difference between the first and second derivative files from the second difference information, and the second step of generating the third difference information. Based on the third difference information and the first and second derivative files, the first and second
And a third step of merging the source code into any one of the derived files of 1. to merge the modified part of the other file and generating an upgraded output file. Source code automatic version upgrade method.
異を調べて、その差異に対応する位置関係を示す第4の
差分情報を生成する第4の工程を更に具備し、 前記第3の工程では前記第4の工程で生成された第4の
差分情報を参照することでマージの妥当性を検証するよ
うにしたことを特徴とする請求項1記載のソースコード
自動バージョンアップ方法。2. The method further comprises a fourth step of checking a difference between the first and second derived files and generating fourth difference information indicating a positional relationship corresponding to the difference. 2. The automatic source code upgrade method according to claim 1, wherein the validity of the merge is verified by referring to the fourth difference information generated in the fourth step in the step.
ルと、前記元ファイル、前記第1の派生ファイル及び前
記第2の派生ファイルとを比較することで、前記出力フ
ァイルが正しくマージされているか否かを検証する第4
の工程を更に具備することを特徴とする請求項1記載の
ソースコード自動バージョンアップ方法。3. The output file generated in the third step is compared with the original file, the first derivative file, and the second derivative file so that the output files are correctly merged. Fourth to verify whether or not
The source code automatic version upgrade method according to claim 1, further comprising:
イルから派生した第1の派生ファイル及び第2の派生フ
ァイルを関数毎に分解してファイル別の関数リストを生
成する第1の工程と、 前記第1の工程で生成された前記元ファイルと前記第1
の派生ファイルの両関数リストの差異を調べて、対応す
る位置関係を示す第1の差分情報を生成すると共に、前
記元ファイルと前記第2の派生ファイルの両関数リスト
の差異を調べて、対応する位置関係を示す第2の差分情
報を生成する第2の工程と、 前記第2の工程で生成された第1及び第2の差分情報か
ら、前記第1及び第2の派生ファイルの両関数リスト間
の差異に対応する位置関係を示す第3の差分情報を生成
する第3の工程と、 前記第3の工程で生成された第3の差分情報と、前記第
1及び第2の派生ファイルをもとに、前記第1及び第2
の派生ファイルのいずれか一方のファイルに、他方のフ
ァイルの変更部分を取り込む形でソースコードのマージ
を行い、バージョンアップされた出力ファイルを生成す
る第4の工程とを具備することを特徴とするソースコー
ド自動バージョンアップ方法。4. A first step of decomposing a source code source file, a first derived file derived from the source file and a second derived file for each function to generate a function list for each file, The original file generated in the first step and the first file
The difference between both function lists of the derived file of (1) to generate the first difference information indicating the corresponding positional relationship, and the difference between both function lists of the original file and the second derived file A second step of generating second difference information indicating a positional relationship between the two functions of the first and second derivative files from the first and second difference information generated in the second step. A third step of generating third difference information indicating a positional relationship corresponding to the difference between the lists, the third difference information generated in the third step, and the first and second derivative files. Based on the first and second
And a fourth step of merging the source code into one of the derivative files of the other one so as to incorporate the changed part of the other file, and generating an upgraded output file. Source code automatic version upgrade method.
イルから派生した第1及び第2の派生ファイルの間で常
に同じパターンで変更が行われている箇所を検出して、
その変更前後のパターンの対応情報を定型置換情報とし
て生成する第1の工程と、 前記元ファイルと前記第1の派生ファイルの間の差異を
調べて、対応する位置関係を示す第1の差分情報を生成
すると共に、前記元ファイルと前記第2の派生ファイル
の間の差異を調べて、対応する位置関係を示す第2の差
分情報を生成する第2の工程と、 前記第2の工程で生成された第1及び第2の差分情報か
ら、前記第1及び第2の派生ファイル間の差異に対応す
る位置関係を示す第3の差分情報を生成する第3の工程
と、 前記第3の工程で生成された第3の差分情報と、前記第
1及び第2の派生ファイルをもとに、前記第1及び第2
の派生ファイルのいずれか一方のファイルに、他方のフ
ァイルの変更部分を取り込む形でソースコードのマージ
を行い、バージョンアップされた出力ファイルを生成す
る第3の工程であって、前記第1の工程で生成された定
型置換情報の示す変更前パターンに一致するソースコー
ド部分をマージする際には、当該定型置換情報の示す変
更後パターンに置換する第3の工程とを具備することを
特徴とするソースコード自動バージョンアップ方法。5. A source code source file and first and second derived files derived from the source file are always detected with the same pattern of change,
A first step of generating correspondence information of patterns before and after the change as standard replacement information, and a difference between the original file and the first derivative file, and first difference information indicating a corresponding positional relationship. And a second step of generating the second difference information indicating the corresponding positional relationship by examining the difference between the original file and the second derived file, and generating the second step. A third step of generating third difference information indicating a positional relationship corresponding to the difference between the first and second derived files from the generated first and second difference information; and the third step. Based on the third difference information generated in step 1 and the first and second derivative files, the first and second
The third step of merging the source code into one of the derivative files of the other one in a manner that incorporates the changed part of the other file to generate an upgraded output file, the first step. When merging the source code portions that match the pre-change pattern indicated by the standard replacement information generated in step 3, the third step of substituting with the changed pattern indicated by the standard replacement information is provided. Source code automatic version upgrade method.
イルから派生した第1及び第2の派生ファイルが格納さ
れた記憶装置と、 前記記憶装置に格納されている前記元ファイルと前記第
1の派生ファイルの間の差異を調べて、対応する位置関
係を示す第1の差分情報を生成する一方、前記元ファイ
ルと前記第2の派生ファイルの間の差異を調べて、対応
する位置関係を示す第2の差分情報を生成し、この生成
した第1及び第2の差分情報から、前記第1及び第2の
派生ファイル間の差異に対応する位置関係を示す第3の
差分情報を生成する差分情報生成手段と、 前記差分情報生成手段により生成された第3の差分情報
と、前記第1及び第2の派生ファイルをもとに、前記第
1及び第2の派生ファイルのいずれか一方のファイル
に、他方のファイルの変更部分を取り込む形でソースコ
ードのマージを行い、バージョンアップされた出力ファ
イルを生成するマージ手段とを具備することを特徴とす
るソースコード自動バージョンアップ装置。6. A source code source file, a storage device storing first and second derivative files derived from the source file, the source file stored in the storage device, and the first derivative. The difference between the files is checked to generate the first difference information indicating the corresponding positional relationship, while the difference between the original file and the second derived file is checked to indicate the corresponding positional relationship. Difference information for generating the second difference information, and for generating the third difference information indicating the positional relationship corresponding to the difference between the first and second derivative files from the generated first and second difference information Based on the generation means, the third difference information generated by the difference information generation means, and the first and second derivative files, one of the first and second derivative files is created. , The other fa Le of Merges the source code in the form of taking a changed part, the source code automatic upgrading apparatus characterized by comprising a merge means for generating an output file has been upgraded.
第2の派生ファイル間の差異を調べて、その差異に対応
する位置関係を示す第4の差分情報を生成するように構
成されており、 前記マージ手段は、前記差分情報生成手段で生成された
第4の差分情報を参照することでマージの妥当性を検証
するようにしたことを特徴とする請求項6記載のソース
コード自動バージョンアップ装置。7. The difference information generating means is configured to check a difference between the first and second derivative files and generate fourth difference information indicating a positional relationship corresponding to the difference. 7. The source code automatic version according to claim 6, wherein the merge means verifies the validity of the merge by referring to the fourth difference information generated by the difference information generating means. Up device.
ァイルと、前記元ファイル、前記第1の派生ファイル及
び前記第2の派生ファイルとを比較することで、前記出
力ファイルが正しくマージされているか否かを検証する
比較検証手段を更に具備することを特徴とする請求項6
記載のソースコード自動バージョンアップ装置。8. The output file generated by the merging means is compared with the original file, the first derivative file, and the second derivative file to determine whether the output files are correctly merged. 7. The method according to claim 6, further comprising comparison verification means for verifying whether or not
Automatic source code upgrade device described.
イルから派生した第1及び第2の派生ファイルが格納さ
れた記憶装置と、 前記記憶装置に格納されている前記元ファイル、前記第
1の派生ファイル及び前記第2の派生ファイルを関数毎
に分解してファイル別の関数リストを生成する関数リス
ト生成手段と、 前記関数リスト生成手段により生成された前記元ファイ
ルと前記第1の派生ファイルの両関数リストの差異を調
べて、対応する位置関係を示す第1の差分情報を生成す
る一方、前記関数リスト生成手段により生成された前記
元ファイルと前記第2の派生ファイルの両関数リストの
差異を調べて、対応する位置関係を示す第2の差分情報
を生成し、この生成した第1及び第2の差分情報から、
前記第1及び第2の派生ファイルの両関数リスト間の差
異に対応する位置関係を示す第3の差分情報を生成する
差分情報生成手段と、 前記差分情報生成手段により生成された第3の差分情報
と、前記第1及び第2の派生ファイルをもとに、前記第
1及び第2の派生ファイルのいずれか一方のファイル
に、他方のファイルの変更部分を取り込む形でソースコ
ードのマージを行い、バージョンアップされた出力ファ
イルを生成するマージ手段とを具備することを特徴とす
るソースコード自動バージョンアップ装置。9. A source code source file, a storage device storing first and second derivative files derived from the source file, the source file stored in the storage device, and the first derivative. A function list generation unit that decomposes a file and the second derived file for each function to generate a function list for each file; both the original file and the first derived file generated by the function list generation unit The difference between the function lists is checked to generate the first difference information indicating the corresponding positional relationship, while the difference between the function lists of the original file and the second derived file generated by the function list generating means is calculated. Then, the second difference information indicating the corresponding positional relationship is generated, and from the generated first and second difference information,
Difference information generating means for generating third difference information indicating a positional relationship corresponding to a difference between the function lists of the first and second derivative files, and a third difference generated by the difference information generating means Based on the information and the first and second derivative files, the source code is merged in such a manner that the changed portion of the other file is incorporated into one of the first and second derivative files. , A source code automatic version upgrade device comprising: a merge means for generating an upgraded output file.
ァイルから派生した第1及び第2の派生ファイルが格納
された記憶装置と、 前記記憶装置に格納されている前記元ファイルと、当該
第1及び前記第2の派生ファイルの間で常に同じパター
ンで変更が行われている箇所を検出して、その変更前後
のパターンの対応情報を定型置換情報として生成する定
型置換情報生成手段と、 前記元ファイルと前記第1の派生ファイルの間の差異を
調べて、対応する位置関係を示す第1の差分情報を生成
する一方、前記元ファイルと前記第2の派生ファイルの
間の差異を調べて、対応する位置関係を示す第2の差分
情報を生成し、この生成した第1及び第2の差分情報か
ら、前記第1及び第2の派生ファイル間の差異に対応す
る位置関係を示す第3の差分情報を生成する差分情報生
成手段と、 前記差分情報生成手段により生成された第3の差分情報
と、前記第1及び第2の派生ファイルをもとに、前記第
1及び第2の派生ファイルのいずれか一方のファイル
に、他方のファイルの変更部分を取り込む形でソースコ
ードのマージを行い、バージョンアップされた出力ファ
イルを生成するマージ手段であって、前記定型置換情報
生成手段により生成された定型置換情報の示す変更前パ
ターンに一致するソースコード部分をマージする際に
は、当該定型置換情報の示す変更後パターンに置換する
マージ手段とを具備することを特徴とするソースコード
自動バージョンアップ装置。10. A source code source file, a storage device storing first and second derived files derived from the source file, the source file stored in the storage device, and the first and second source files. A standard replacement information generation unit that detects a place where a change is always made in the same pattern between the second derived files and generates correspondence information of the patterns before and after the change as standard replacement information, and the original file. And generating the first difference information indicating the corresponding positional relationship, while checking the difference between the original file and the second derived file, and handling the difference. Generating a second difference information indicating a positional relationship between the first and second generated differential information, and a third difference indicating a positional relationship corresponding to the difference between the first and second derived files. Of the first and second derivative files based on the difference information generating means for generating information, the third difference information generated by the difference information generating means, and the first and second derivative files. Merging means for merging source code into one of the files so as to incorporate the changed portion of the other file, and generating a versioned output file, which is the fixed form generated by the fixed form replacement information generating means. An automatic source code upgrade device comprising merge means for replacing a source code portion matching a pre-change pattern indicated by replacement information with a post-change pattern indicated by the standard replacement information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7232742A JPH0981371A (en) | 1995-09-11 | 1995-09-11 | Automatic version-up method and device for source code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7232742A JPH0981371A (en) | 1995-09-11 | 1995-09-11 | Automatic version-up method and device for source code |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0981371A true JPH0981371A (en) | 1997-03-28 |
Family
ID=16944060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7232742A Pending JPH0981371A (en) | 1995-09-11 | 1995-09-11 | Automatic version-up method and device for source code |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0981371A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234379A (en) * | 2007-03-22 | 2008-10-02 | Daikin Ind Ltd | Software generation device and software generation method |
JP2010079905A (en) * | 2008-09-25 | 2010-04-08 | Internatl Business Mach Corp <Ibm> | Method of generating tool for merging customizations made to first version of software artifact when migrating to second version of the software artifact, computer usable medium and data processing system |
US9830227B2 (en) | 2014-12-05 | 2017-11-28 | International Business Machines Corporation | Performing a closure merge operation |
JP2019117481A (en) * | 2017-12-27 | 2019-07-18 | 株式会社明電舎 | File change assisting device, file change assisting method and file change assisting program |
-
1995
- 1995-09-11 JP JP7232742A patent/JPH0981371A/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234379A (en) * | 2007-03-22 | 2008-10-02 | Daikin Ind Ltd | Software generation device and software generation method |
JP2010079905A (en) * | 2008-09-25 | 2010-04-08 | Internatl Business Mach Corp <Ibm> | Method of generating tool for merging customizations made to first version of software artifact when migrating to second version of the software artifact, computer usable medium and data processing system |
US9830227B2 (en) | 2014-12-05 | 2017-11-28 | International Business Machines Corporation | Performing a closure merge operation |
US10055302B2 (en) | 2014-12-05 | 2018-08-21 | International Business Machines Corporation | Performing a closure merge operation |
US10877846B2 (en) | 2014-12-05 | 2020-12-29 | International Business Machines Corporation | Performing a closure merge operation |
JP2019117481A (en) * | 2017-12-27 | 2019-07-18 | 株式会社明電舎 | File change assisting device, file change assisting method and file change assisting program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0702294A2 (en) | Method and apparatus for diagnosing lexical errors | |
JPH0981371A (en) | Automatic version-up method and device for source code | |
JP2007041804A (en) | Program generation device, program verification device, and verification program | |
EP1202171A2 (en) | Compile method and program recording medium | |
JP2004145381A (en) | Static analysis system for source program | |
JPH1185536A (en) | Device and method for automatically correcting error of source program | |
JP3248433B2 (en) | Program linkage verification method | |
JP2000357097A (en) | Program managing method | |
JP3584204B2 (en) | Automatic source program converter | |
JP3114199B2 (en) | List output method of language processing system | |
JP4483163B2 (en) | Program test debugging device | |
JP2792383B2 (en) | Verification method of processing result of batch processing system | |
JPH01155438A (en) | Compiler test system | |
JP5525459B2 (en) | Program modification support method and program modification support device | |
JP2725628B2 (en) | Retest path selection method | |
JP3729076B2 (en) | Combined shared module version checking method and version checking program | |
JP2806976B2 (en) | Program content inspection device | |
JP5169322B2 (en) | Variable optimization apparatus, variable optimization program, compiler, variable optimization method, and compilation method | |
JPH08297569A (en) | Source program correction supporting device | |
JP2000112722A (en) | System and method for managing number of printing and storage medium | |
JP2751539B2 (en) | Interface verification processing method | |
JPH0793144A (en) | Program analyzer | |
JPH05241802A (en) | Merge system for source module correction information | |
CN115776508A (en) | Buried point checking method and system | |
JPH04230523A (en) | Program preparation device |