最後のチェックインの詳細を取得するための CVS コマンド ライン オプションを知っている人はいますか?

StackOverflow https://stackoverflow.com/questions/86515

質問

Windows 上で CVS (WinCVS フロントエンドを使用) を使用していますが、修正を容易にするために、ビルドが失敗するたびに、自動ビルド プロセスからの電子メールに最後のチェックインの詳細を追加したいと考えています。

変更されたファイル、変更したユーザー、およびコメントを知る必要があります。

コマンドラインオプションを調べようとしましたが、正確な結果が得られないようです(1回のチェックインだけでなく多すぎる結果が得られたか、2週間前のランダムなチェックインの詳細のいずれか)

役に立ちましたか?

解決

おお。

これがどれだけ大変なことか忘れていました。私が以前に行ったのは 2 段階のプロセスでした。

まずはランニング

cvs history -c -a -D "7 days ago" |
    gawk '{ print "$1 == \"" $6 "\" && $2 == \"" $8 "/" $7 "\" { print \"" $2 " " $3 " " $6 " " $5 " " $8 "/" $7 "\"; next }" }' > /tmp/$$.awk

過去 7 日間のすべてのチェックインに関する情報を収集し、送信された電子メールの一部を作成するために使用されるスクリプトを生成します。

次に、壊れたファイルが含まれているディレクトリ内の CVS/Entries ファイルをトロールして、詳細情報を取得しました。

2 つを一緒に書き換えることで、犯人を特定し、ビルドが壊れていることを通知するメールを送信することができました。

この回答が期待したほど完全ではなくて申し訳ありません。

他のヒント

CVS は、他のバージョン管理システムのように変更セットをグループ化しません。各ファイルには、独自の独立したバージョン番号と履歴があります。これは CVS の欠陥の 1 つであり、人々がより新しい VC への移行を促すことになります。

そうは言っても、目標を達成する方法はあります。最も簡単なのは、コミット後のフックを追加して電子メールを送信するか、ファイルにログを記録することです。その後、少なくとも、電子メールの送信時刻と変更を加えたユーザーを確認することで、一連のコミットをグループ化できます。

CVS はこの機能を提供しません。ただし、ライセンスを購入することで入手できます。 フィッシュアイ またはおそらく使用して CVSTrac (注記:CVS Trac は試していません)。

または、アトミック コミットを通じてこの機能を提供する SVN に移行することもできます。ファイルのグループをチェックインし、それを 1 つのコミットとしてカウントすることができます。CVS では、何を行っても各ファイルは個別のコミットになります。

これは、変更ログをダンプする Perl スクリプトを介して実行しました。2 番目のリンクから Windows 用の Perl の無料バージョンを入手できます。

Cvs2Cl スクリプト

アクティブな Perl

CVSROOT で loginfo を使用し、その情報をファイルに書き込みます

http://ximbiot.com/cvs/manual/cvs-1.11.23/cvs_18.html#SEC186

「cvs History -a -l」でそれに近づくでしょうか?プロジェクトごとの最後のイベントをすべてのユーザーに表示します...

CVSNT のサポート コミットID これは、ログ、チェックアウト、または更新コマンドのタグの代わりに使用できます。コミットされたファイルの各セット (CVSNT ではコミットはアトミックです) は、独自の一意の ID を受け取ります。最初に cvs ログを介して最後にチェックインされたファイルのコミット ID を確認するだけで済みます (-d"1 時間前" などを使用して出力を制限できます)、次にその ID を持つ他のファイルをクエリします。

Eclipse には ChangeSet が組み込まれています。コミットすることで、最後の変更 (少なくとも受信した変更、つまり更新) を参照できます。これは、作成者、コミットメッセージ、および同様のタイムスタンプごとにコミットをグループ化することによって行われます。

これは、ブランチ、タグ、日付を選択できる「別のブランチまたはバージョンと比較」でも機能します。同期ビューのアイコンで「セットの変更」を含むポップアップ メニューを確認し、ご自身の目で確認してください。

編集:これには、少なくともビューアとして Eclipse に変更する必要がありますが、比較およびグループ化する必要がある頻度によっては、それほど悪くないかもしれません。これ以上使用したくない場合は、CVS のみに Eclipse を使用してください。すべてのプラグインを備えた rcp を介して適切なサイズのグラフィカル CVS クライアントを取得することも可能であるはずですが、これは間違いなく範囲外です...

これは解決された問題ではないでしょうか?上のいくつかのツールのどれかだと思います CI マトリックス CVS と電子メール通知の両方をサポートしている場合は、これを行うことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top