我从后备箱到本地DIR进行了结帐,并在那里进行了许多本地更改。现在,我不想将其提交回主干,但我希望从该本地版本创建一个分支。那可能吗?
可我只是树干复制到一个分支,然后cd DIR
和svn switch
分支?
更新:感谢您的回答,它起作用了!总结步骤:
cd DIR
svn copy . new-branch-URL
svn switch new-branch-URL .
(注意点)
我从后备箱到本地DIR进行了结帐,并在那里进行了许多本地更改。现在,我不想将其提交回主干,但我希望从该本地版本创建一个分支。那可能吗?
可我只是树干复制到一个分支,然后cd DIR
和svn switch
分支?
更新:感谢您的回答,它起作用了!总结步骤:
cd DIR
svn copy . new-branch-URL
svn switch new-branch-URL .
(注意点)
svn switch
,因此我选择从new-branch-URL
之后签出新副本svn copy
。
Answers:
SVN手册(http://svnbook.red-bean.com/en/1.6/svn-book.html#svn.branchmerge.using.create)不建议从本地工作副本创建分支。
虽然也可以通过
svn copy
在工作副本中复制目录来创建分支,但不建议使用此技术。实际上,它可能相当慢!在客户端复制目录是线性时间操作,因为它实际上必须复制本地磁盘上该工作复制目录中的每个文件和子目录。
而是先创建分支,然后使用svn switch
命令,以便您可以提交更改。如果您的工作副本与主干相比已经过时,请在源URL后面附加“ @REV”,其中“ REV”是所报告的工作副本的修订版svn info
。
但是,在服务器上复制目录是一项固定时间的操作,这是大多数人创建分支的方式。
$ 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."
svn copy <trunk-URL> <newBranch-URL>
将中继复制到svn服务器上的新分支,然后svn switch
在我的工作副本中使用以切换到新分支而不丢失任何更改?还是该开关会杀死我未提交的修改文件?