2

用户 A 使用 r1234 提交到 SVN。他之后的一些用户也在 r1250 使用生成的 HEAD 签入。我们被告知在 r1234 标记最后一个 ci 的树干。

我们使用哪个来正确和安全地进行标记?

svn copy http://some.url.com/some/dir@1234 http://some.url.com/some/other/dir
or
svn copy -r 1234 http://some.url.com/some/dir http://some.url.com/some/other/dir

我们认为每一个的含义是不同的。

谢谢

4

1 回答 1

1

定义:@1234称为挂钩修订-r 1234称为操作修订。如果未指定挂钩修订版,则默认为HEAD(用于远程操作)。如果未指定有效版本,则默认为挂钩版本。

以下两个命令有什么区别?

svn cp -r 1234 ^/trunk@1234 ^/branches/foobar
svn cp -r 1234 ^/trunk@HEAD ^/branches/foobar

前者复制具有/trunk修订版 1234 中名称的目录。在合同中,后者从/trunk最新修订版中命名的目录开始,确定修订版 1234 中的祖先并复制该目录。

这意味着只有/trunk在修订版 1234 之后目录已重命名时才会有所不同。这不太可能。然而:

使用 peg 修订创建一个分支,因为无论在指定修订之后存储库中发生了什么,它始终具有相同的效果。

svn cp ^/trunk@1234 ^/branches/foobar

有关详细信息,请参阅在线书籍Version Control with Subversion中的Peg 和 Operative Revisions部分。

于 2013-05-01T09:05:30.107 回答