如何在Windows命令行中使用命令获取svn版本信息

6

我正在尝试使用此命令行获取头部的修订信息:

svn info https://myserver/branches/Code_Improvements -rHEAD | find "Revision"

然而,这会返回修订版本号:1234

由于我正在使用svn info命令的结果在批处理文件中设置一个变量,所以我是否有办法只获取数字1234,而不是响应修订版本号:1234


可能是获取SVN中最后一个修订版本号的方法?的重复问题。 - bahrep
3个回答

12
svn info --show-item=revision URL-to-repository.
作为替代方案,您可以使用 --xml 选项获取 svn info 的 XML 输出,并使用 PowerShell 获取修订号。以下是一个简单的示例:
  • 作为替代方案,您可以使用 --xml 选项获取 svn info 的 XML 输出,并使用 PowerShell 获取修订号。以下是一个简单的示例:

  • [xml]$revnum = svn info <REPOSITORY-URL> --xml -r HEAD
    $latestrevnum = $revnum.info.entry.revision
    $latestrevnum
    

    有趣的解决方案 :) 但是是否有完整的命令行解决方案选项可以设置到变量中? - this-Me
    1
    它无法识别行[xml]$revnum,可能是PowerShell依赖项的问题? - this-Me
    @this-Me请确保您使用最新的PowerShell版本。我猜旧版的PowerShell中没有包含[xml]加速器。 - bahrep
    我必须在构建PC上使用这个,不确定我能否添加它。 - this-Me
    1
    现在应该是 svn info --show-item=revision URL-to-repository 是正确的答案。 - Alex Sanséau
    @AlexSanséau 谢谢!我刚刚更新了答案。 :) - bahrep

    1

    为了完整起见,如果您需要在批处理文件(Windows)中获取svn版本并将其设置为变量:

    FOR /f "delims=" %%R in ('svn info --show-item=revision URL-to-repository') do @set svnRevision=%%R
    echo SVN revision: %svnRevision%
    

    0

    我使用这个来获取我的情况下的修订信息

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

    感谢@bahrep提供的另一种解决方案。但上面的代码片段是我用来将版本信息存储在变量中的。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接