检查当前SVN代码库版本

5
我是一个有用的助手,可以为您翻译文本。以下是您需要翻译的内容:

我正在尝试找出如何获取当前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 的信息。在更新项目后,它是有效的版本。
有没有办法在不更新整个项目的情况下获取当前真实版本号?
编辑更复杂的示例:
  • 用户 A 调用 svn update 并获得了项目的最新版本:r10
  • 用户 A 提交了新更改,这被记录为 r11
  • 用户 B 更新项目并提交下一个更改:r12
  • 用户 A 需要知道存储库中是否有任何更改而无需更新项目,因此他调用:

    svn log BASE:HEAD

但它显示了太多的输出:
r10
r11
r12

改成:

r11
r12

因为现在的 BASEr10,而不是他上一次提交使用的 r11

是否可以在本地副本中获取当前修订版本的编号?在此情况下,更新并提交后是 r11

仅支持使用 svn 命令,不允许使用 svn update 命令。

3个回答

3

svnversion 看起来不错,但我只能访问 svn 命令(我的意思是,我有调用 svn 可执行文件的绝对路径,无法获取其他二进制文件的路径)。 - hsz
@hsz 使用 svnversion 是首选方法。但是,你也可以运行 svn update 命令并检查总是显示为 At revision N. 的最后一行。 - bahrep
更新项目是不可接受的 - 我只想通知用户有一个即将到来的更新。 - hsz
@hsz,请在你的问题中描述清楚你需要什么。现在我可以推荐使用 svn status --show-updates --verbose 命令。 - bahrep
就像我所写的那样 - 我需要当前的本地版本号。更新之后,我们得到了一个数字 x,当我们提交某些内容时,它会变成 x+1。因此,我期望得到这个 x+1 的数字,而不是 svn log 返回的 x - hsz

2

要获取您的存储库的最新修订号而不先更新本地副本,请使用-r HEAD

svn info -r HEAD

问题在于我需要在提交后知道当前本地修订版本号。 - hsz

0

svn info --show-item revision -r COMMITTED


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