SVN中-r和url@rev有什么区别?

3
有人能解释一下以下两个SVN命令中使用-r REVURL@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文档似乎没有解释它们之间的区别。
1个回答

5

-r X表示告诉Subversion“按照今天URL的状态,告诉我有关修订版本X的信息”(假设您没有指定@修订版本)。

url@X表示告诉Subversion“前往修订版本X并查找此URL”。

@语法称为锚定修订版本-r X是操作修订版本。

这是一个非常微妙但非常重要的区别。在使用@X时,通常会经常使用-r X

因此,如果您在修订版本6003中删除了https://svnserv2.acme.com/stx/project1/trunk/gui/Mammoth/WebContent/css,则现在无法查看该URL,因为它不存在于HEAD修订版本6004(或更高版本)。


谢谢,我应该更仔细地阅读手册(像往常一样!) - user2187357
“-r X告诉Subversion:“前往当前的URL”,为什么会这样?” - n611x007
@naxa 你是什么意思?为什么Subversion开发人员选择实现这个功能?你是在质疑语法/风格吗?为什么需要它?你的问题并不清楚。 - alroc
我不明白为什么有人想要前往主版本并从那里查看X版本修订,我无法看出任何用处。我的问题是“这到底有什么必要?”以及“为什么Subversion开发人员选择这样做”。我实际上无法理解“URL如今的状态,并告诉我你知道的情况”。 - n611x007
今天的URL是什么,告诉我你知道什么 - 这是关于HTTP请求的Request-URI的字符串值吗? - 无论如何,“为什么需要它?”和svn开发人员的设计选择是我主要的问题。 - n611x007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接