我们的(非常旧的)代码库有一个 ActiveX 客户端 UI,它需要构建二进制文件并将其提交到 SVN。
我们使用主干、功能分支和标记发布存储库模式。
我编写了一个 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 合并的客户端 UI 更改
有没有办法排除svn diff
命令上的合并更改?