1

私たちの (非常に古い) コードベースには、バイナリをビルドして 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か?

4

1 に答える 1