3

SVN にコミットするとき、トップ レベルのコミット メッセージを追加してコミット内容を詳しく説明できますが、個々のファイルとその中で何が変更されたかについてコメントする手段が理想的です。以前の雇用で似たようなことを見たことがありますが、これは CVS を使用していました (そして、これがスケルトン ファイルを生成する自作スクリプトで達成されたかどうか思い出せません)。

私はチェンジリストを見てきましたが、これが以下に概説するような粒度を与えるとは思いません(間違っていることが証明されることを望んでいますが)。

理想的には、次のようなものを探しています:

Foo.vb

  • 新しい機能バーを追加

Bar.vb

  • 関数 foo を削除しました
  • xyz に abc +/- を実行する機能を追加 エラーをログに記録するように関数を修正
4

5 に答える 5

4

1 つの特定のタスクが完了したら、いつでもコミットできます。とにかく、それはより良いコメントにつながるはずです。必要な 3 つのファイルの「E-Mail 検証の実装」というコメントは、「verify_email 機能の追加」よりも多くのことを教えてくれます。後者は差分で確認できます。

于 2008-09-19T14:58:58.233 に答える
2

MOAPと呼ばれるこの種のことを行うためのプロジェクトを書きました

その機能の 1 つは、ローカル diff から ChangeLog エントリを生成することです (現在、bazaar、cvs、svn、git、および darcs をサポートしています)。これを行うには、'moap changelog prepare' または 'moap cl prep' を実行します。オプションを有効にすると、そのエントリには変更された機能も含まれます。

次に、そのエントリを変更し、変更内容を説明します。次のコミットの一部として、コミットしたくないファイルを削除できます。

次に、「moap changelog commit」を実行して、ChangeLog エントリに記述されている変更をコミットできます。そこにリストされているファイルのみをコミットし、他のすべての変更をローカルに残します。

それが役立つことを願っています!

于 2008-09-20T07:48:33.440 に答える
2

個々のコミットメッセージでこれを行うだけです。TortoiseSVNにはファイル名のオートコンプリート機能があるため、これが大いに役立ちます。

あなたができるもう1つのことは、コミットしてファイル名をコミットメッセージにコピー/貼り付ける前にsvn stです。

ああ、これの価値を強く疑問視してください。一部の OSS プロジェクト (Linux?) がこの種の忠実度を必要とすることは知っていますが、多くのプロジェクトでは、これは単なるノイズです。diff は、これよりもはるかに多くのことを、より正確に伝えることができます。

考慮すべきもう 1 つのことは、Gitの使用です。Git を使用すると、小さなステップでローカルにコミットできます。次に、すべてのコミットを個別にマスターサーバーにプッシュするか、すべてのコミットメッセージを単一のメッセージにまとめて単一のコミットに押し込みます。これはかなり単純化された説明でしたが、おそらくチェックする価値があります。

于 2008-09-19T14:58:34.180 に答える
2

SVN と CVS の本質的な違いの 1 つは、変更がアトミックにコミットされることです。CVS では各ファイルに独自のバージョンがありますが、SVN ではバージョンはプロジェクト全体のものであり、一緒にチェックインされたすべてのファイルが含まれます。

解決策として、次の 4 つのアイデアがあります。

  1. 独自のログ メッセージを使用して、各プログラムを個別にチェックインします。これは、たとえば、5 つのファイルをチェックインすると、5 つのバージョンを「使い果たす」ことになり、そのうちの 4 つが壊れたビルドになる可能性があることを意味します。
  2. 別のパス (つまり、独自のプライベート ブランチ) で開発を行い、上記のように実行してから、戦略的なタイミングでブランチをトランクにマージします。
  3. すべてをまとめてチェックインし、個々のレコードをプログラム ヘッダーのコメントとして保持します。これは (少し) 余分な作業を意味するかもしれませんが、とにかく個々のログイン メッセージを作成する必要があります。
  4. すべてのファイルに対して 1 回のチェックインを実行しますが、各ファイルの各部分の詳細を示す完全なログ メッセージが表示されます。
于 2008-09-19T15:05:23.960 に答える
0

コミットされた各ファイル内でのコメントの書き方に関する規則があれば、そのような結果が得られる可能性があります。これらのコメントは、その後 svn トリガーによって抽出できます。

于 2008-09-19T15:02:22.703 に答える