1

私たちが抱えている問題は次のとおりです。

開発者は、自分のサンドボックスでトランクをチェックアウトします。特定のファイルを変更が行われているブランチに切り替えるための切り替えスクリプトを作成しました。場合によっては、切り替えスクリプトが失敗したように見え、開発者が変更をチェックインします。これらの変更はリビジョン ログに表示されますが、ブランチまたはトランクにチェックインされているかどうかはわかりません。開発者のボックスで迷子になっているようです。これにより、多くの切り替えが発生し、小さな変更の場合は再コーディングされることがよくあります。

私の質問は、リビジョンがチェックインされたブランチをどのように確認できますか?

4

3 に答える 3

2

Tortoise を使用して、変更したプログラムのログを取得しました。

ログ メッセージ

アクションとパスを強調しました。パスは、どのブランチで何が変更されたかを正確に示しています。

于 2012-08-31T19:09:47.367 に答える
1

TortoiseSVNを使用していない場合は、詳細なsvnログを取得できます。

svn log --verbose -r HEAD

これにより、コミット内のすべてのファイルのsvnの場所が表示されます(@Gilbert Le Blancの回答と同じように)。以下の出力例。HEAD別の何かが必要な場合は、特定のリビジョンに変更してください。

------------------------------------------------------------------------
r556 | USER | 2012-08-30 13:37:35 -0500 (Thu, 30 Aug 2012) | 1 line
Changed paths:
   M /trunk/Path/File.cs

Commit Comment
------------------------------------------------------------------------
于 2012-08-31T19:16:01.670 に答える
1

リビジョンはツリーごとにあるため、最初にリビジョンの「変更」を取得する必要があります

svn diff -r <start revision>:<end revision> --summarize <root svn URL>

次のような出力が生成される可能性があります

A       file:///home/xxx/svn/yyy/trunk/src/main/java/com/proj/App.java
A       file:///home/xxx/svn/yyy/trunk/src/main/java/com/proj
A       file:///home/xxx/svn/yyy/trunk/src/main/java/com
A       file:///home/xx/svn/yyy/trunk/src/main/java
A       file:///home/xxx/svn/yyy/trunk/src/main
A       file:///home/xxx/svn/yyy/trunk/src
A       file:///home/xxx/svn/yyy/trunk/pom.xml
 M      file:///home/xxx/svn/yyy/trunk

ブランチは SVN のディレクトリとして実装されるため、プロジェクトのルートと、(慣例により) 「ブランチ」と見なされる直下のサブディレクトリを決定する必要があります。

上記の例では

file:///home/xxx/svn/yyy/

プロジェクトの「ルート」URL と見なされるため、

file:///home/xxx/svn/yyy/trunk

チェックインされた「ブランチ」は

trunk

他のアイテムがチェックインされたことに注意してください

trunk/src/main/java/com

しかし、私の慣例では、それはブランチではありません。何がブランチであるかの決定は従来のものであるため、どのブランチが影響を受けたかを最後に決定するには、特定の SVN 設定に関する知識が必要になります。私の場合

branches/branchA

私自身は(私のプロジェクトのために)ブランチと見なされますが、

branches/branchA/src

ブランチとは見なされません。

于 2012-08-31T19:38:46.253 に答える