知道SubVersion工作副本是否已更新
时间:2020-03-06 14:59:21 来源:igfitidea点击:
每当WC更新到新修订版时,是否可以修改/修改文件?或者,作为第二好的选择,每当执行svn update
时?
这样做的动机是:我想在可执行文件中包含SVN版本号。因此,我必须在构建过程中运行SubWCRev。即使修订号没有更改,SubWCRev的输出文件也会每次重新创建。这意味着即使没有任何更改,该exe也会在每个版本上链接。我希望仅根据需要链接它。
解决方案
- 将SubWCRev输出输出到一个临时文件中
- 将此文件与当前修订号文件进行比较
- 仅当两者不同时,才用临时文件覆盖它
- 删除临时文件
我们甚至可以使用.bat文件执行此操作(使用fc
)。就像是...
REM ***UNTESTED*** FC temp.rev curr.rev | FIND "FC: no dif" > nul IF NOT ERRORLEVEL 1 COPY /Y temp.rev curr.rev DEL temp.rev
编辑:顺便说一句,我们可以通过使rev-number-file依赖于.hg / dirstate来在Mercurial中做到这一点。
我的答案可能太短了,但可能会给我们一些指导。
SVN有钩子。它们是每次提交代码时都会执行的脚本。
可能是?
这听起来像是这里讨论的重复:
在Windows应用中在编译时嵌入SVN修订版号
在该问题中描述的我的方法适用于各种平台,并且可以输出为我们编程的任何格式,因此在包括文件在内的可行解决方案的任何情况下都可以使用。
在情况下,我们要注意svnversion输出中的M修饰符:这将使我们知道WC已被修改。