SVN 信息将旧版本号显示为当前版本

Jak*_*son 6 linux svn centos

我有一个 SVN 仓库。当我最近提交更改时,反映的当前修订号为 620:

Transmitting file data ...
Committed revision 620.
Run Code Online (Sandbox Code Playgroud)

但是,如果我然后运行,svn info我会得到以下信息:

Path: .
URL: http://www.site.com.testing/repos/site.com/trunk
Repository Root: http://svn.server/repos/site.com
Repository UUID: a9c3a166-39f6-4cfb-8622-fd24eb11034b
Revision: 584
Node Kind: directory
Schedule: normal
Last Changed Author: bob
Last Changed Rev: 584
Last Changed Date: 2012-03-26 18:32:55 -0400 (Mon, 26 Mar 2012)
Run Code Online (Sandbox Code Playgroud)

所以提交一些东西告诉我当前的 SVN repo 是 620,但svn info告诉我当前的 rev 是 584。还svn log显示 584 作为当前(最近的)rev。

如果我在 Windows 中通过 TortoiseSVN 查看 SVN 日志,它会正确地将修订版 620 显示为当前修订版。

我是否缺少有关如何svn infosvn log工作的信息?

Dav*_* W. 8

Subversion 向您显示的是,您已检出修订版 584。该信息是直接从.svn/entries文件中获取的,而不是从服务器中获取的。

这源于 Subversion 的基本设计,即尽可能不从存储库服务器请求信息。如果用户碰巧在远程工作并且没有与存储库服务器的网络连接,那么他们决定允许用户拥有大量 Subversion 的功能。

  • 如果您svn info对刚刚提交的文件之一执行 a ,您将看到该文件的修订版为 620。
  • 如果你做了一个svn info http://www.site.com.testing/repos/site.com/trunk,你会看到最后一个修订版是修订版 620,因为它正在与服务器通信。
  • 如果您先执行 a svn update,然后执行 a svn info,您将看到您的工作目录位于修订版 620。

只是一个简单的问题:你是提交了几个文件,还是提交了整个工作目录?如果您在提交中指定了已更改的文件,这将是有意义的。Subversion 不会知道更新.svn/entries工作目录根目录中的文件。但是,即使我提交了所有更改,我也看到了这一点。每当我提交所有更改时,我都会开始执行 svn up。

请记住:这不是错误。这是一个特点。


Sma*_*ger 7

svninfo 命令可能会向您显示当前工作目录的修订版本,而当您提交一个或多个更改的文件时,该提交的输出会显示这些文件的新版本。584 将是文件夹的最后更改/更新版本。

尝试svn update在文件夹上运行 an并重新运行svn info. 它应该使文件夹的其余部分达到 620