0

私の開発チームでは、要件管理を使用して製品の予想される動作と機能を制御し、バグレポートツールを使用して「問題レポート」(PR)を追跡しています。要件の変更は、コードリポジトリでのコミットのように機能する「変更提案」(CP)によって行われます。

最終製品を変更するコミットを行うには、CVSコミットコメントで CP コードの変更が製品の変更を反映していることを意味します)またはPR(つまり、問題を修正するためにコードが変更されています)。CPとPRには番号が付けられているため、コードの変更を原因の項目(CPまたはPR)にリンクできます。

サンプル解説

エラー訂正コミット解説:

Kind: Error Correction

Trace: PR-015 Crashing upon startup

Description: Edited file foo.c in order to verify uninitialized variables.

製品変更コミットの解説:

Kind: Development

Trace: CP-053 New login mechanism

Description: Added login mechanism with library X and blablabla.

ここでの私の問題は、特定のCPまたはPRに対して変更されたすべてのファイルを取得する簡単な方法がなく、コードに加えられたすべての変更を取得できないことです。

ログを解析するために正規表現(PythonのRE)を使用しようとしましたが、すべての可能なログをカバーするのは少し困難でした。私の正規表現は、何度かそれを適応させた後でも、あちこちでリストを取得できませんでした。

ですから、ここで私を助けるかもしれないもっと簡単な方法やプロジェクトや製品、あるいはCVSの組み込み機能さえないかどうかを考えてきました。

客観的な質問:整形式のタグ(CPまたはPR)で識別できるコミット内の変更されたファイルのリストを取得するにはどうすればよいですか?より簡単な方法はありますか、それともログの解析に固執する必要がありますか?

環境の詳細:

OS:Windows XP CVSサーバー:cvsnt CVSクライアント:tortoise / cvsnt

4

1 に答える 1

0

私自身の質問には答えたくありませんでしたが、同じ問題を抱えている人々の将来の参考になるかもしれないと思います。

さて、私はログメッセージのテキストの内容でフィルタリングする「ログメッセージ」(コミットコメントのcvs用語)内で検索​​を実行し、そのコミットで変更されたファイルをグループ化することができました。

ここで「JoakimElofsson 」が指摘しているように、cvspsは、コミット情報を「パッチセット」にグループ化するための優れたツールです。パッチセットは、それらのコミットで変更されたすべてのファイルへの参照を持つ個々のコミットです。

現時点ではWindows用のポートがないため、 cygwin用にパックされたバージョンのcvspを使用しました。

ここで利用可能なインターネット設定を使用してcygwinをインストールし、パッケージを選択するときにcvspscvsを検索し、両方をインストールします。

システムでチェックアウトされたファイルを(/ cygdrive / cフォルダーを介して)使用できなかったため、cygwinシェルからチェックアウトしました。

亀のユーザーのためのBEGINObs

次のコマンドを使用して、CVSROOT環境変数をリポジトリの現在のCVSROOTに設定する必要があります。

export CVSROOT="Your CVSROOT string here"

通常、チェックアウトしたコードベースのファイルのプロパティページを確認すると、CVSという名前のタブが表示されます。CVSROOT文字列があります。(私と同じように:sspi:を使用してリモートリポジトリに接続している場合は、:pserver:に切り替えてみてください。うまくいきましたが、正確な理由はわかりません)。

亀のユーザーのためのENDObs

さて、あなたのリポジトリ使用コマンドをチェックアウトした後:

cvsps

これにより、リクエストのcvspsパッチセットベースが作成されます。次に、以下を使用します。

cvsps -l "Some regexp code"

入力正規表現に一致するログメッセージのパッチセットを検索します。

これはcvsps -l私のデータベースでP100-PR-FEX`を使用したサンプルです(公開できるようにいくつかのファイル名とパスを変更しました...):

PatchSet 71
Date: 2012/10/25 11:30:44
Author: GUARITA
Branch: HEAD
Tag: (none)
Branches:
Log:
Kind: Error correction

Trace: P100-PR-FEX145

Description:
Corrections of the TRUE and FALSE conventions used by the C++ (true:everything but 0, false:0) P100 interface to the VB6 (false:0, true:-1 or 'all bits set to 1 which is -1 in 2's complement') P100Interface ActiveX object.
P100 Panel Version increment.

Members:
        SidePanels/P100.wimp:1.2->1.3
        SidePanels/Calcs/P100Interface/private/P100Interface.cpp:1.2->1.3

また、これを使用して、(リリースを制御するために使用する)タグ間の変更をと比較することもできますcvsps -r <tag1> -r <tag2>

于 2012-11-26T13:48:40.843 に答える