我想知道如何获取当前的SVN存储库版本,但没有运气。
当我尝试:
svn info -r BASE
我收到以下信息:
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)
所以周围有很多无用的信息。它也会因机器语言而异(英语可以强制在LANG=en_US
前加上命令。)
但真正的问题是我犯了什么东西。输出:
svn commit -m "foo"
是:
Committed revision 11.
但svn info
仍会显示有关修订10
的信息。更新项目后,它是有效版本。
有没有办法在不更新整个项目的情况下获取当前的实际版本号?
编辑更复杂的例子:
svn update
并获取项目的最新版本:r10
,r11
,r12
,用户A需要知道存储库中是否有任何更改而不更新项目,因此他调用:
svn log BASE:HEAD
但它显示的输出太多了:
r10
r11
r12
而不是:
r11
r12
因为BASE
是r10
而不是最后一次提交的r11
。
是否可以在本地副本中获取CURRENT修订版的编号?在这种情况下,在更新和提交之后,它是r11
。
仅支持 svn 命令,且不允许svn update
。
答案 0 :(得分:2)
Updates and commits in Subversion are separate!这就是为什么svn info
在您提交后显示10
的原因。
我猜你确实想要svnversion
tool.使用svnversion -c
。
您还可以运行svn update
并查看始终显示为At revision REVNUM
的最后一行。
答案 1 :(得分:1)
要获取您的仓库的最新版本号而不先更新本地副本,请使用T[]... arrays
:
-r HEAD