关于获取最新修订号的说明:
假设我已经进入了一个有版本控制的子目录(MyProjectDir
)。然后,如果我调用 svnversion
命令:
$ svnversion .
323:340
我得到了 "323:340
",我猜这意味着:" 你这里有一些条目,从版本 323 到 340。"
接下来,如果我调用 svn info
:
$ svn info
Path: .
URL: svn+ssh://server.com/path/to/MyProject/MyProjectDir
Repository Root: svn+ssh://server.com/path/to/MyProject
Repository UUID: 0000ffff-ffff-...
Revision: 323
Node Kind: directory
Schedule: normal
Last Changed Author: USER
Last Changed Rev: 323
Last Changed Date: 2011-11-09 18:34:34 +0000 (Wed, 09 Nov 2011)
我得到的“323
”是修订版本中实际上报告的最低版本,这些版本是由svnversion
报告的!
然后我们可以使用递归模式下的svn info
来获取更多关于本地目录的信息:
> svn info -R | grep 'Path\|Revision'
Path: .
Revision: 323
Path: file1.txt
Revision: 333
Path: file2.txt
Revision: 327
Path: file3.txt
Revision: 323
Path: subdirA
Revision: 328
Path: subdirA/file1.txt
Revision: 339
Path: subdirA/file1.txt
Revision: 340
Path: file1.txt
Revision: 323
...
...(移除grep
以查看更多细节)。
最后,当我们想要检查在线代码库(在本例中为@ server.com
)的最新修订版本时该怎么做?然后我们再次使用svn info
,但加上-r HEAD
选项(请注意先前大写的-R
选项和现在的小写-r
之间的区别):
> svn info -r 'HEAD'
USER@server.com's password:
Path: MyProjectDir
URL: svn+ssh://server.com/path/to/MyProject/MyProjectDir
Repository Root: svn+ssh://server.com/path/to/MyProject
Repository UUID: 0000ffff-ffff-...
Revision: 340
Node Kind: directory
Last Changed Author: USER
Last Changed Rev: 340
Last Changed Date: 2011-11-11 01:53:50 +0000 (Fri, 11 Nov 2011)
有趣的是-svn info
仍然引用当前子目录(MyProjectDir
),但在线路径报告为MyProjectDir
(与本地情况下的.
相反)-并且报告的在线版本是最高的(340
-而不是本地报告的最低版本323
)。
$ svn info --show-item revision
svn: 无效选项: --show-item
使用 Apache Subversion 1.8.16 (r1740329) 编译于 2016 年 4 月 26 日。也尝试使用 CollabNet 1.6.11 (r934486) 编译于 2014 年 3 月 6 日。 - IceArdorsvn help info
以获取svn info
的合法选项。 - XavierStuvw--show-item
可用。 - icc97