2008-10-01 102 views
0

当WC更新为新版本时,是否有办法修改/接触文件?或者,作为第二好的选择,每当svn update被执行?了解SubVersion工作副本是否已更新

这是动机:我想在我的可执行文件中包含SVN修订版号。所以我必须运行SubWCRev作为构建的一部分。 SubWCRev的输出文件每次都会重新创建,即使版本号没有更改。这意味着即使没有任何变化,exe文件也会连接到每个版本。我希望它只根据需要进行链接。

回答

3
  1. 获取SubWCRev输出到一个临时文件
  2. 这个文件进行比较,以目前的修订数文件
  3. 只有当两个不同
  4. 删除临时文件,临时文件覆盖它

您甚至可以使用.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 

编辑:顺便说一句,你可以通过使转数文件取决于.hg/dirstate在水银做到这一点。

-1

我的答案可能太短,但可能会给你一些方向。

SVN有挂钩。它们是每次提交代码时都会执行的脚本。

也许吧?

+0

不,我想知道WC何时更新,而不是存储库。 – Lev 2008-10-01 18:17:41

1

这听起来像这样的讨论在这里的副本: Embedding SVN Revision number at compile time in a Windows app

我的做法,在这个问题描述的,跨平台的作品,并可以输出到你的程序,因此在任何情况下工作,其中包括文件的任何格式是一个可行的解决方案。

在你的情况下,你需要注意svnversion输出中的M修饰符:它会让你知道你的WC已经被修改了。

相关问题