Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn subversion副本(分支)的简明命令行_Svn_Command Line_Copy_Branch_Command Line Arguments - Fatal编程技术网

Svn subversion副本(分支)的简明命令行

Svn subversion副本(分支)的简明命令行,svn,command-line,copy,branch,command-line-arguments,Svn,Command Line,Copy,Branch,Command Line Arguments,到目前为止,我看到的所有svn分支示例都是这样的 svn cp-m“建立测试分支”svn://svnrepo/hellosite svn://svnrepo/hellosite2 所以为了分支,我每次都需要指定远程存储库的完整URL。但是: 工作副本与单个远程存储库相关联。甚至svn开关也被认为是先进的“外科”手术 在与工作副本相同的存储库中对远程URL进行分支总是如此(至少我从未需要在与当前存储库完全无关的存储库中进行分支) 不支持在存储库之间复制(对吗?) 有关远程存储库的信息可用:请

到目前为止,我看到的所有svn分支示例都是这样的

svn cp-m“建立测试分支”svn://svnrepo/hellosite svn://svnrepo/hellosite2

所以为了分支,我每次都需要指定远程存储库的完整URL。但是:

  • 工作副本与单个远程存储库相关联。甚至svn开关也被认为是先进的“外科”手术
  • 在与工作副本相同的存储库中对远程URL进行分支总是如此(至少我从未需要在与当前存储库完全无关的存储库中进行分支)
  • 不支持在存储库之间复制(对吗?)
  • 有关远程存储库的信息可用:请参阅svn信息
那我为什么每次都要输入完整的URL?!!还是我错过了什么? 是否存在允许引用当前远程存储库的快捷方式?差不多

svn cp-m“生成测试分支”//hellosite//hellosite2

这是您需要习惯的许多奇怪的SVN ISM之一


您认为需要在两个参数中指定完整URL的假设是绝对正确的。

使用SVN 1.6或更高版本,如果您当时在工作副本中,则可以使用作为到存储库根目录的捷径,例如

svn cp -m 'Making test branch' ^/trunk ^/branches/hellosite
请注意,至少在Windows上,您需要将
^/trunk
用双引号括起来,以使其通过shell

svn cp -m "Making test branch" "^/trunk" "^/branches/hellosite"

您只需将别名添加到shell中即可。例如,我创建了一个小的bash别名文件,以便在shell上方便地进行svn分支。(您可以在此处获取完整文件:)

创建分支现在变成

svnbr "branchname" "commit message"

在您的工作目录中。

也许git已经宠坏了我……您可以创建一个别名:谢谢,这非常接近我需要的。从SVN 1.8开始,上述方法将不起作用(因为SVN现在使用单个.SVN子目录)。链接到GitHub的repo包含处理此问题的脚本的更新版本。//,这仍然是最新版本吗?
svnbr "branchname" "commit message"