Svn 了解SubVersion工作副本是否已更新

Svn 了解SubVersion工作副本是否已更新,svn,build-process,Svn,Build Process,是否有办法在WC更新为新版本时修改/触摸文件?或者,作为第二个最佳选项,每当执行svn update 动机如下:我希望在可执行文件中包含SVN修订号。因此,我必须运行SubWCRev作为构建的一部分。SubWCRev的输出文件每次都会重新创建,即使修订号没有更改。这意味着在每个构建上都链接exe,即使没有任何更改。我希望它仅在需要时链接 将SubWCRev输出获取到临时文件中 将此文件与当前修订号文件进行比较 仅当两者不同时,才使用临时文件覆盖它 删除临时文件 您甚至可以使用.bat文件(使用f

是否有办法在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
    
    编辑:另外,您可以在Mercurial中通过使版本号文件依赖于
    .hg/dirstate
    来完成此操作

  • 将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
    

    编辑:另外,您可以在Mercurial中通过使版本号文件依赖于
    .hg/dirstate
    来实现这一点。我的答案可能太短,但可能会给您一些指导

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


    也许吧?

    我的答案可能太短了,但可能会给你一些指导

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


    也许吧?

    这听起来像是这里讨论的重复:

    我的方法,在那个问题中描述的,可以跨平台工作,并且可以输出到您编程的任何格式,所以它可以在任何情况下工作,其中包括一个文件是一个可行的解决方案


    在您的情况下,您希望在svnversion的输出中观察M修饰符:这将让您知道您的WC已被修改。

    这听起来像是此处讨论的重复:

    我的方法,在那个问题中描述的,可以跨平台工作,并且可以输出到您编程的任何格式,所以它可以在任何情况下工作,其中包括一个文件是一个可行的解决方案


    在您的情况下,您希望在svnversion的输出中观察M修饰符:这将让您知道您的WC已被修改。

    否。我想知道WC何时被更新,而不是存储库。否。我想知道WC何时更新,而不是存储库。