有人可以解释在以下两个SVN命令中使用-r REV
和URL@REV
语法之间的区别:
svn co -r6002 https://svnserv2.acme.com/stx/project1/trunk/gui/Mammoth/WebContent/css
svn:无法在修订版6002中找到“https://svnserv2.acme.com/stx/project1/trunk/gui/Mammoth/WebContent/css”的存储库位置
svn co https://svnserv2.acme.com/stx/project1/trunk/gui/Mammoth/WebContent/css@6002
检出修订版6002.
因此,如果我用-r
检出SVN目录的版本,它会失败,但是如果我使用url@REV
它就可以了 - 我会认为这两个是等价的,不幸的是SVN文档看起来不像解释差异。
答案 0 :(得分:5)
-r X
对Subversion说“请转到今天的网址,并告诉我您对修订版X的了解”(假设您未指定@
修订版)
url@X
对Subversion说“转到修订版X并找到此网址”
@
语法称为Peg Revision。 -r X
是操作修订版。
这是一个非常微妙的差异,但非常重要。当您使用-r X
时,您经常会使用@X
。
因此,如果您在修订版6003中删除了https://svnserv2.acme.com/stx/project1/trunk/gui/Mammoth/WebContent/css
,则现在HEAD
是修订版6004(或其他任何内容)时,它无法查看该网址,因为它不存在。