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
命令?