我想弄清楚,如何获得当前的 SVN 存储库版本,但没有运气。
当我尝试:
svn info -r BASE
Run Code Online (Sandbox Code Playgroud)
我得到以下信息:
Path: foo-svn
URL: file:///home/hsz/Project/foo-svn
Relative URL: ^/
Repository Root: file:///home/hsz/Project/foo-svn
Repository UUID: b5555486-2e29-45ed-a0bb-b925095964a9
Revision: 10
Node Kind: directory
Last Changed Author: hsz
Last Changed Rev: 10
Last Changed Date: 2015-05-28 11:26:50 +0200 (Thu, 28 May 2015)
Run Code Online (Sandbox Code Playgroud)
所以周围有很多无用的信息。它也因机器语言而异(英语可以强制在命令前加上LANG=en_US)。
但真正的问题是当我提交一些东西时。输出:
svn commit -m "foo"
Run Code Online (Sandbox Code Playgroud)
是:
Committed revision 11.
Run Code Online (Sandbox Code Playgroud)
但svn info仍显示有关修订的信息10。更新项目后,它是有效版本。
有没有办法在不更新整个项目的情况下获取当前的真实版本号?
编辑更复杂的例子:
svn update并获取项目的最新版本:r10,r11,r12,用户 A 需要在不更新项目的情况下知道存储库中是否有任何更改,因此他调用:
svn 日志基础:头
但它显示了太多的输出:
r10
r11
r12
Run Code Online (Sandbox Code Playgroud)
代替:
r11
r12
Run Code Online (Sandbox Code Playgroud)
因为BASE是他最后一次提交r10而不是r11哪个。
是否可以在本地副本中获取 CURRENT 修订版的编号?在这种情况下,在更新和提交之后是r11.
只支持svn命令,svn update不允许。
Subversion 中的更新和提交是分开的!这就是为什么在你提交后svn info会显示10。
我猜你实际上想使用svnversion工具。尝试svnversion -c。
您还可以运行svn update并检查总是显示的最后一行At revision REVNUM。