web-dev-qa-db-ja.com

SVNブランチ比較

あるブランチを別のブランチと比較するにはどうすればよいですか?ブランチをトランクの最新リビジョンと比較したい。

43
tekumara

次から始めることができます:

svn diff http://REPOS/trunk http://REPOS/branches/B

(どこ http://REPOSは、trunkおよびbranchesの親を含むリポジトリパスです。

これにより、テキストのすべての変更を含む大量のテキストが印刷されますが、発生した場所と時間を示す以外のバイナリの変更は含まれません。

64
Edmund

異なるファイルの高レベルを探しているだけで、すべての内容を表示したくない場合は、次を使用します。

svn diff ^/trunk ^/branches/dev --summarize

(これはトランクと開発ブランチを比較します)

16
cchamberlain

通常、2つのブランチ(またはブランチとトランク)をディレクトリにチェックアウトします。次に、Kompareなどのグラフィカルツールを使用します(好み、オペレーティングシステムなどによって異なります)。これは、複雑なマージを実行する必要がある場合に非常に役立ちます。

6
CMorgan

評判がないからといって、これを既存の回答に対するコメントとして追加できないので、別の回答として追加する必要があります。

私にとってsvn diffの便利なオプションは--ignore-propertiesでした。私の2つのブランチは、コードの点では同じですが、マージ履歴が異なります。

--ignore-propertiesを使用することで、大量の "svn:mergeinfo"プロパティの変更をせずに、これが事実であることを自分に証明することができました。

3
Michael Firth

ドキュメントはこちらsvn diffコマンド。

1
Michael Hackner

情報を提供してくれた人たちに感謝します。diffの結果の読みやすさを改善するために何かを追加します。 txt

次を使用できます。findstr "Index:" C:\ path\svn_diff_filename.txt> svn_diff_file_list.txt

これにより、違いのあるファイルの読み取り可能なリストが表示されます。

1
Kra.

Murray Cummingからの投稿 は、非自明なプロセスを説明しています。

  • リビジョン番号の発見:各ブランチの最新バージョンのリビジョン番号を知る必要があります。 svn logがそれを行う唯一の方法のようです。
  • トランクなどのブランチディレクトリの1つにcdします。
  • リビジョン番号をsvn diffコマンドに指定します:svn diff -r123:145
0
Stef

ブランチの2つのリビジョンを比較するには:

svn diff -r rLATEST:rOLD

svn logを使用して、さまざまなリビジョンを取得します。 svn log -l 5を使用して、ログ内のリビジョンの数を制限できます。最後の5つのリビジョンのみが表示されます。

0
arush436