Next: Renaming and VC, Up: Miscellaneous VC
プログラムに対してRCSやCVSを使い、しかも、それらに変更記録ファイル (see Change Log)を保持しているならば、 版管理の記録項目から変更記録項目を自動的に生成できます。
vc-update-change-log
)。
このコマンドはRCSやCVSだけで動作し、SCCSでは動作しない。
たとえば、ChangeLogの最初の行の日付が1999年4月10日であり、 それ以降のチェックインは Nathaniel Bowditchが1999年5月22日に ‘Ignore log messages that start with `#'.’という記録で rcs2logにチェックインしたものだけだとしましょう。 そうすると、C-x v aはChangeLogを訪問して、 つぎのようなテキストを挿入します。
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つの項目にまとめます。 たとえば、最後にチェックインしたものに、以下の記録があったとします。
これらは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にはコピーされません。 たとえば、記録項目がつぎのようであるとします。
すると、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に 入れないですみます。