バージョン管理でソースコードを操作するときに、GNUスタイルのChangeLogエントリの作成を部分的に自動化したいと思います。はadd-changelog-entry-other-window
一度に1つのファイルで動作し、使用するにはファイルにアクセスする必要があります。
代わりに私が見たいのは、の出力を受け取るdiff -u -p
(またはVCモードと統合して処理できるようにするsvn diff
など)コマンドを用意し、すべてのスケルトンエントリを一度に作成することです。
たとえばsvn status
、
D file1.c
M file2.c
A file3.c
コマンドは作成します
2009-09-05 My Name <my.email>
* file1.c: Removed.
* file2.c: WRITE YOUR CHANGES HERE
* file3.c: New.
さらに良いことに、変更されたファイルを一部の言語である程度解析して、次の機能を提供できる場合は、次のようになります。
* file2.c (new_function): New function.
(deleted_function): Removed.
(changed_function): WRITE YOUR CHANGES HERE
この機能はEmacsのマニュアルで見つけましたが、ここでどのように適用できるかわかりません。
助言がありますか?ありがとう。
編集:1つの答えはvc-update-change-logを提案しました。残念ながら、それはCVSのみをサポートし、すでにコミットされたVCログを照会することによってChangeLogエントリを作成します。したがって、svnなどをサポートしていても、変更とChangeLogを同じコミットでコミットすることはできません。
EDIT2:どうやらadd-changelog-entry-other-window(Cx 4 a)は、訪問したファイルからだけでなく、そのファイルを含む差分ハンクからも機能するようです。(出典)これはほとんど私が探しているものです。これは、すべてのハンクを反復処理するelispループと一緒に解決する必要があります。