私たちの (非常に古い) コードベースには、バイナリをビルドして SVN にコミットする必要がある ActiveX クライアント UI があります。
トランク、フィーチャー ブランチ、およびタグ付きリリース リポジトリ パターンを使用します。
svn diff
ブランチとタグの作成のコミット リビジョンを決定し、2 つの間の UI バイナリへの変更を一覧表示するために使用することで、リリース パッケージをコンパイルする NAnt スクリプトを作成しました。これらはリポジトリからエクスポートされ、リリース パッケージが生成されます。
<exec program="svn.exe"
commandline="diff svn://hostname/Project/branches/1.2/Client -r 1234:5678 --summarize --xml"
output="c:\Temp\ClientComponents.xml" />
<xmllist file="c:\Temp\ClientComponents.xml"
property="ClientComponents"
delim=","
xpath="/diff/paths/path[@kind = 'file' and @item != 'deleted']" />
<foreach item="String" in="${ClientComponents}" delim="," property="source">
<!-- svn export -->
</foreach>
からの出力はsvn diff
次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<diff>
<paths>
<path
item="modified"
props="none"
kind="file">svn://hostname/project/branches/1.2/Client/Component1.cab</path>
</paths>
</diff>
これは今までうまく機能していました.2つの同時機能ブランチがあるためです.
最初の機能ブランチ (例: 1.1) は、1.1.1 バージョンに正しくパッケージ化されたクライアント UI に変更を加えました。
この変更は 2 番目のブランチ (例: 1.2) にマージされており、1.2.1 をパッケージ化しようとすると、1.1 からマージされたクライアント UI の変更が含まれています。
コマンドでマージされた変更を除外する方法はありますsvn diff
か?