svn:如何从特定版本的主干创建分支


116

以下操作只会从主干的主修订版创建一个分支。如何从特定版本创建分支?谢谢。

$ svn copy http://svn.example.com/repos/calc/trunk \
       http://svn.example.com/repos/calc/branches/my-calc-branch \
  -m "Creating a private branch of /calc/trunk."

2
只是要注意,这里有两个反斜杠()可以忽略换行符...并且它不是svn命令的一部分
Harry Lime 2013年

Answers:


163

查看帮助命令:

svn help copy

  -r [--revision] arg      : ARG (some commands also take ARG1:ARG2 range)
                             A revision argument can be one of:
                                NUMBER       revision number
                                '{' DATE '}' revision at start of the date
                                'HEAD'       latest in repository
                                'BASE'       base rev of item's working copy
                                'COMMITTED'  last commit at or before BASE
                                'PREV'       revision just before COMMITTED

要使用您的示例在命令行上实际指定此命令:

svn copy -r123 http://svn.example.com/repos/calc/trunk \
    http://svn.example.com/repos/calc/branches/my-calc-branch

123您要复制的中继中的修订号在哪里。正如其他人指出的那样,您也可以使用@语法。我个人更希望将修订版本#与URL分开。

如帮助中所述,您还可以用某些单词替换修订版号:

svn copy -rPREV http://svn.example.com/repos/calc/trunk \
    http://svn.example.com/repos/calc/branches/my-calc-branch

将复制“即将提交的修订”。


另外,在上面的示例中,如果123在下方未进行修订trunk,则copy ...trunk@123 ...语法可能会失败Path ...trunk@123 does not exist in revision 768(其中768repo是最新的),而-r 123这样做是正确的。使用旧版SVN客户端观察到,1.6可能会或可能不会仍然如此。
vladr

3
参数-rREV并不总是有效。有时您需要@REV。见stackoverflow.com/questions/6591938/...
Mojca

1
-r可通过Homebrew在Mac OS X上与svn 1.7.13版(r1516569)一起使用。
kakyo 2014年


19

使用“ @”字符附加修订:

svn copy http://src@REV http://dev

或者,使用-r [--revision]命令行参数。


谢谢你 无法确定手册页中是否需要方括号。应该已经知道他们正在使用EBNF。
rstackhouse 2014年

0

尝试以下一项:

svn copy http://svn.example.com/repos/calc/trunk@rev-no 
       http://svn.example.com/repos/calc/branches/my-calc-branch 
  -m "Creating a private branch of /calc/trunk."  --parents

svn网址之间不能使用斜杠“ \”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.