2013-07-09 113 views
1

我們的(非常遺留的)代碼庫有一個ActiveX客戶端UI,它需要構建並提交二進制文件到SVN。NAnt + svn diff - 忽略合併提交

我們使用中繼,功能分支和標記的發佈存儲庫模式。

我編寫了一個NAnt腳本來編譯發行包,方法是確定分支和標記創建的提交修訂,並使用svn diff列出兩者之間的UI二進制文件的更改 - 然後將這些更改從存儲庫導出以生成發行版包:

<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進行了更改。

這種變化已被合併向前進入第二分支(如1.2),當我現在嘗試打包1.2.1它包括從1.1

合併的客戶端用戶界面的變化有什麼辦法來排除合併更改svn diff命令?

回答