【问题标题】:Can I set an environment variable with the SVN revision number of a project?我可以使用项目的 SVN 修订号设置环境变量吗?
【发布时间】:2009-03-11 17:53:54
【问题描述】:

我正在尝试获取项目的修订号并将其保存到变量中。我知道我可以通过 svnversion 命令获取修订号,但我不确定如何存储它。我正在使用常规的 Windows 命令提示符。基本上我正在尝试做类似的事情: 设置 svnVersion= %svnversion% 但我不确定如何设置??

【问题讨论】:

  • 你真的需要在批处理文件中做吗?如果它是用于项目构建系统,那么可能有更简单的方法可以做到这一点,例如与 Java 世界中的 ant 结合使用。
  • 如果你想用命令行来做任何事情,我强烈建议切换到任何 unix/linux 系列操作系统。

标签: svn batch-file environment-variables


【解决方案1】:

要在批处理文件中将变量的输出设置为 svnversion 的输出,您必须这样做:

for /f "delims=" %%a in ('svnversion') do @set myvar=%%a

echo %myvar% 

不同的方法:如果你有 TortoiseSVN,你也可以使用 SubWCRev.exe。看 get the project revision number into my project?Automatic SVN Revision Numbering in ASP.Net MVC

【讨论】:

  • 在批处理文件中,您必须将 'for' 变量的 % 符号加倍。
  • 其实我认为single % 是正确的选择。至少它在我的系统上是这样工作的
【解决方案2】:

如果您需要来自远程存储库(如本地未签出),您可以这样做

for /f "delims=: tokens=1,2" %%a in ('svn info %SVN_REPO_URL%') do (
  if "%%a"=="Revision" (
    set /a RELEASE_REVISION=%%b
  )
)

我在发布过程中使用它从标签中获取修订号。

【讨论】:

    【解决方案3】:

    在 bash 中(通过 Cygwin):

    svn info | grep -i "Revision" | cut -d ' ' -f 2
    

    然后您可以在 bash shell 脚本中使用它来将值存储在变量中。

    【讨论】:

    • 我不确定大多数人将 bash 作为他们的“常规 Windows 命令提示符”运行 ;-)
    【解决方案4】:

    “svn info”子命令会告诉你工作副本中的修订号。

    【讨论】:

      【解决方案5】:

      类似:

      svn version > ver.txt
      set /p ver= < ver.txt
      del ver.txt
      echo %ver%
      

      【讨论】:

        【解决方案6】:

        看看有没有帮助:Change Revision Number

        【讨论】:

          【解决方案7】:

          这是一个替代方法,它使用管道来 findstr 获取单行:

          FOR /F "tokens=2" %%G IN ('svn info ^| findstr /B Revision:') DO SET SVN_REVISION=%%G
          echo SVN_REVISION: %SVN_REVISION%
          
          FOR /F "tokens=2" %%G IN ('svn info ^| findstr /B URL:') DO SET SVN_URL=%%G
          echo SVN_URL: %SVN_URL%
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-09-06
            • 2017-11-11
            • 1970-01-01
            • 2013-07-09
            • 2010-11-11
            • 2017-09-29
            相关资源
            最近更新 更多