【发布时间】:2011-01-26 17:33:52
【问题描述】:
我想检查一个svn url并获得最早的修订版,然后签出它,我不想使用HEAD,因为我会将最早的修订版与其他人进行比较。
所以我使用“svn info”来获取 URL 的“Last Changed Rev”,如下所示:
D:\Project>svn info svn://.../branches/.../path
Path: ...
URL: svn://.../branches/.../path
Repository Root: svn://yt-file-srv/
Repository UUID: 9ed5ffd7-7585-a14e-96b2-4aab7121bb21
Revision: 2400
Node Kind: directory
Last Changed Author: xxx
Last Changed Rev: 2396
Last Changed Date: 2010-03-12 09:31:52 +0800
但是,我发现 2396 修订版不可签出,因为此路径位于从主干复制的分支中,而 2396 是在主干中修改的修订。所以当我使用 svn checkout -r 2396 时,我会得到一个主干路径的工作副本,然后我不能为分支做签入。
D:\Project>svn checkout svn://.../branches/.../path -r 2396 workcopy
.....
.....
D:\Project>svn info workcopy
Path: workcopy
URL: svn://.../trunk/.../path
Repository Root: svn://yt-file-srv/
Repository UUID: 9ed5ffd7-7585-a14e-96b2-4aab7121bb21
Revision: 2396
Node Kind: directory
Schedule: normal
Last Changed Author: xxx
Last Changed Rev: 2396
Last Changed Date: 2010-03-12 09:31:52 +0800
所以,我的问题是如何获取分支路径的可检出修订版,在本例中,我想获得 2397(因为 2397 是发生复制的修订版)。
而且我知道“svn log”可以获取信息,但是“svn log”输出可能很长并且解析它会比“svn info”困难。我只想知道哪个版本是路径的最早可检出版本。
【问题讨论】:
标签: svn