当WC更新到新版本时,有没有办法让文件被修改/触摸?或者,作为第二个最佳选项,只要执行svn update
?
这是动机:我想在我的可执行文件中包含SVN修订号。所以我必须运行SubWCRev作为构建的一部分。即使修订号未更改,每次都会重新创建SubWCRev的输出文件。这意味着即使没有任何更改,exe也会在每个构建上链接。我希望它只在需要时链接。
答案 0 :(得分:3)
您甚至可以使用.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中执行此操作。
答案 1 :(得分:1)
这听起来像是这里讨论的重复: Embedding SVN Revision number at compile time in a Windows app
我的方法在该问题中描述,可以跨平台工作,并且可以输出为您编程的任何格式,因此它可以在包含文件是可行解决方案的任何情况下工作。
在你的情况下,你想在svnversion的输出中观察M修饰符:这会让你知道你的WC已被修改。
答案 2 :(得分:-1)
我的回答可能太短,但可能会给你一些指导。
SVN有钩子。它们是每次提交代码时都会执行的脚本。
也许?