5

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

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

コマンドラインオプションを試してみましたが、正確な結果が得られないようです(1回のチェックインからではなく、あまりにも多くの結果が得られるか、2週間前からのランダムなチェックインの詳細のいずれかです)。

4

9 に答える 9

2

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

とはいえ、目標を達成する方法はいくつかあります。最も簡単なのは、post-commit フックを追加して、電子メールを送信したり、ログをファイルに記録したりすることです。次に、少なくとも、メールが送信された時間と変更者を確認することで、一連のコミットをグループ化できます。

于 2008-09-17T19:14:24.903 に答える
1

わお。

これがどれほど難しいか忘れてしまいました。私が以前にしたことは、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人を一緒にいじくり回すと、犯人に指をさして、ビルドが壊れたことを通知するメールを送信することができました。

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

于 2008-09-17T19:19:46.340 に答える
1

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

Cvs2Cl スクリプト

アクティブパール

于 2008-09-17T19:23:11.933 に答える
1

CVS はこの機能を提供しません。ただし、 FishEyeのライセンスを購入するか、 CVSTracを使用することで入手できます(注: CVS Trac は試していません)。

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

于 2008-09-17T19:14:11.267 に答える
1

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

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

于 2008-10-17T17:12:14.997 に答える
0

これは解決された問題ではありませんか?CVSと電子メール通知の両方をサポートするCIMatrixのいくつかのツールのいずれかが、これを実行できると思います。

于 2009-03-16T16:12:06.443 に答える
0

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

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

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

于 2008-11-06T10:42:30.237 に答える
0

"cvs history -a -l" で近づきますか? プロジェクトごとのすべてのユーザーの最後のイベントを表示します...

于 2008-09-17T19:17:42.007 に答える
0

CVSNT は、log、checkout、または update コマンドのタグの代わりに使用できるコミット IDをサポートしています。コミットされたファイルの各セット (コミットは CVSNT ではアトミックです) は、独自の一意の ID を受け取ります。最初に cvs log を介して最後にチェックインされたファイルの commitid を特定し (-d"1 hour ago" などを介して出力を制限できます)、次にその ID を持つ他のファイルをクエリするだけです。

于 2008-11-06T10:03:20.893 に答える