次: , 上: Miscellaneous VC


12.7.8.1 変更記録とVC

プログラムに対してRCSやCVSを使い、しかも、それらに変更記録ファイル (see Change Log)を保持しているならば、 版管理の記録項目から変更記録項目を自動的に生成できます。

C-x v a
カレントディレクトリにある変更記録ファイルを訪れる。 そして、そのディレクトリに置いてある登録された各ファイルについて、 変更記録ファイルにある最新の項目以降にチェックインされた版に関する 新たな項目を作成する。 (vc-update-change-log)。

このコマンドはRCSやCVSだけで動作し、SCCSでは動作しない。

C-u C-x v a
上と同様であるが、カレントバッファのファイルに関する項目だけを探す。
M-1 C-x v a
上と同様だが、現在訪問しているファイルのうち版管理の下に置かれているファイル すべてに関する項目を探す。 このコマンドはRCSでのみ動作する。 しかも、デフォルトディレクトリに関する すべての項目を変更記録に追加するが、これは適切でないこともある。

たとえば、ChangeLogの最初の行の日付が1999年4月10日であり、 それ以降のチェックインは Nathaniel Bowditchが1999年5月22日に `Ignore log messages that start with `#'.'という記録で rcs2logにチェックインしたものだけだとしましょう。 そうすると、C-x v aChangeLogを訪問して、 つぎのようなテキストを挿入します。

     1999-05-22  Nathaniel Bowditch  <nat@apn.org>
     
             * rcs2log: Ignore log messages that start with `#'.

このあと、変更記録の新しい項目を好きなように編集できます。

残念ながら、ChangeLogファイルには日付しか記録していないので、 新たな変更記録項目がChangeLogファイルの既存の項目と重複することがあります。 そのような日付の重複は、手作業で削除する必要があります。

通常、ファイルfooに関する記録項目は、 `* foo: text of log entry'のように表示されます。 記録項目のテキストが`(functionname):'で始まると、 fooのうしろの`:'は省かれます。 たとえば、vc.elに関する記録項目が `(vc-do-command): Check call-process status.'であれば、 ChangeLogの中のテキストはつぎのようになります。

     1999-05-06  Nathaniel Bowditch  <nat@apn.org>
     
             * vc.el (vc-do-command): Check call-process status.

C-x v aが複数の変更記録項目を一度に追加するときには、 同じ作者がほぼ同じ日時にチェックインしたものならば、 関連する記録項目をまとめます。 そのようないくつかのファイルに対する記録項目がすべて同じテキストならば、 1つの項目にまとめます。 たとえば、最後にチェックインしたものに、以下の記録があったとします。

vc.texinfoの記録項目: `Fix expansion typos.' • vc.elの記録項目: `Don't call expand-file-name.' • vc-hooks.elの記録項目: `Don't call expand-file-name.'

これらはChangeLogの中ではつぎのようになります。

     1999-04-01  Nathaniel Bowditch  <nat@apn.org>
     
             * vc.texinfo: Fix expansion typos.
     
             * vc.el, vc-hooks.el: Don't call expand-file-name.

通常、C-x v aは記録項目を空行で区切りますが、 関連する記録項目のテキストを`{clumpname'のような ラベルで始めれば、関連する複数の記録項目を1つの塊にする (区切りの空行を入れない)ように印を付けられます。 ラベル自体はChangeLogにはコピーされません。 たとえば、記録項目がつぎのようであるとします。

vc.texinfoの記録項目: `{expand} Fix expansion typos.' • vc.elの記録項目: `{expand} Don't call expand-file-name.' • vc-hooks.elの記録項目: `{expand} Don't call expand-file-name.'

すると、ChangeLogのテキストはつぎのようになります。

     1999-04-01  Nathaniel Bowditch  <nat@apn.org>
     
             * vc.texinfo: Fix expansion typos.
             * vc.el, vc-hooks.el: Don't call expand-file-name.

記録項目のテキストが`#'で始まると、 その記録項目はChangeLogにはコピーされません。 たとえば、コメントの綴りまちがいだけを変更したときには、 記録項目を`#'で始めれば、このような自明なものをChangeLogに 入れないですみます。