Next: , Up: 変更ログ   [Contents][Index]


29.3.1 変更ログコマンド

EmacsコマンドC-x 4 aは、編集しているファイルにたいする新しいエントリーを、変更ログファイルに追加します(add-change-log-entry-other-window)。そのファイルが実際にはバックアップファイルの場合、このコマンドはそのファイルの元のファイルのエントリーを適切に作成します — これはカレントバージョンから削除された関数のログエントリーを作成するとき便利です。

C-x 4 aは変更ログファイルをvisitして、一番最近のエントリーが今日の日付であなたの名前でない場合は、新しいエントリーを作成します。これはカレントファイルにたいする、新しいアイテムも作成します。このコマンドは多くの言語にたいして、変更された関数またはその他のオブジェクトを推測することすらできます。

変更ログファイルを探すために、Emacsは編集中ファイルのディレクトリーからディレクトリー構造を上方に検索します。デフォルトでは、バージョンコントロールディレクトリーのルートと思われるディレクトリーが見つかると、検索はストップします。これを変更するには、change-log-directory-filesをカスタマイズしてください。

変数add-log-keep-changes-togetherが非nilの場合、C-x 4 aは新しいアイテムを開始せず、そのファイルにたいする既存のアイテムに追加します。

同じ性質の複数の変更を1つにまとめることができます。最初のC-x 4 aの後にテキストを何も入力せずに、続けてC-x 4 aをタイプしていくと、他のシンボルが変更ログエントリーに追加されます。

add-log-always-start-new-recordが非nilの場合、最後のエントリーが同じ日付のあなたによる変更だったときでも、C-x 4 aは常に新しいエントリーを作成します。

変数change-log-version-info-enabledの値が非nilの場合、C-x 4 aは、ファイルのバージョン番号を変更ログのエントリーに追加します。これは変数change-log-version-number-regexp-listの正規表現を使用して、ファイルの最初の10%から、バージョン番号を探します。

変更ログファイルは、Change Logモードでvisitされます。このメジャーモードでは、グループ化されたアイテムの集まりは1つのパラグラフと扱われ。各エントリーはページとみなされます。これはエントリーの編集を容易にします。C-jおよびauto-fillは、新しい行を前の行と同様にインデントします。これはエントリーの内容を入力するとき便利です。

Change Logモードがオンのときには、ポイント近傍の変更ログエントリーのソース位置に移動するために、(デフォルトでC-c C-cにバインドされている) change-log-goto-sourceを使用できます。その後のnext-errorコマンド(デフォルトでM-g M-nC-x `にバインドされている)は、変更ログ間のエントリーを移動します。次の変更ログエントリーだけではなく、変更されたファイルの実際のサイトにジャンプするでしょう。ヘンコウログエントリーも戻るためにprevious-errorも使用できます。

コマンドM-x change-log-mergeを使用して、他のログファイルを、エントリーの日付順を保持したまま、Change Logモードのバッファーにマージできます。

バージョンコントロールシステムはプログラム変更の追跡と変更ログを維持する別の手段です。VCSを使用する多くのプロジェクトは、今日ではバージョンごとの変更ログファイルを個別に保持しないので、そのようなファイルをレポジトリ内に保有することを避けたいと思うかもしれません。add-log-dont-create-changelog-fileの値が非nilなら、C-x 4 a (add-change-log-entry-other-window)のようなコマンドは、すでにそのようなファイルが存在しなければファイルではなく適切に命名された一時バッファーに変更を記録します。

変更ログファイルかある場合や変更ログに一時バッファーを使用する場合のいずれにおいても、それらが存在すれば関連する変更ログエントリーを挿入するために、VC LogバッファでC-c C-a (log-edit-insert-changelog)をタイプすることができます。Log Entryバッファーの機能を参照してください。