2012-04-23 105 views
3

使用SVN命令行,我该如何从当前工作副本的URL创建分支? (不是从我的本地工作副本,可能会有本地更改)从工作副本的URL创建svn分支

寻找一个直接的方式,而不需要通过“svn info”来获取URL。

+0

在一个shell脚本确定你使用SVN信息? – 2012-05-27 11:52:11

回答

1

这个怎么样?

svn copy ^/@HEAD <Branch URL>

编辑

由于分支,标签和主干都只是路径和SVN完全是任意的,我不认为你可以做到你想要什么没有一点创意就可以做到(例如,在内置的SVN命令之外)。要做到什么,我认为你想做的事,你可以使用bash脚本(假设的Mac/Linux的):

#!/bin/bash 

CURRENT_URL=$(svn info | grep ^URL | cut -d" " -f2) 

svn copy $CURRENT_URL "^/branches/$1" 

用法:svnbranch.sh newbranch

+0

不回答问题 - 正在从当前工作副本的URL复制。另外^ @ HEAD不起作用,需要^/@ HEAD。 – Danra 2012-05-26 19:57:30

+0

啊,我明白了。我误解了你的部分请求。因此,您希望能够在不指定任何URL的情况下从当前主干或当前分支(不管它是当地工作目录的当前工作目录)进行分支+切换? – 2012-05-27 04:41:43

+0

是的。只是一个分支(没有开关)也可以。 – Danra 2012-05-27 06:01:39

1

您只需执行

svn copy <URL of existing URI> <New URL> 

您可以获取现有的工作副本感谢“SVN信息”的网址。

不应该存在于SVN服务器树中,否则你将在该URL中创建一个子目录。

副本将直接发生在服务器上。事实上,您将直接“提交”您的更改,而不需要任何工作副本。

+0

谢谢。还有更直接的方法吗? – Danra 2012-04-23 11:31:31

+1

不客气。更直接的会是“svn add <分支的URL>”? – 2012-04-23 12:30:50

+0

我的意思是没有先获取网址。类似于使用插入符号(但是由于它指向回购的根源,脱字符号并不好)。 – Danra 2012-04-23 14:26:10

1

运行`svn help copy'并仔细阅读它的输出。我认为 - 修改选项可能会有所帮助。