Subversion:我可以检出,修改,然后使其成为分支吗?
我做了一个从我的箱子到当地的DIR结帐,并做了很多地方的变化。 现在我不想把它提交回主干,但我宁愿从这个本地版本做一个分支。 那可能吗?
我可以只将树干复制到分支,然后cd DIR
和svn switch
到分支?
更新 :感谢您的答案,它的工作! 总结步骤:
-
cd DIR
-
svn copy . new-branch-URL
-
svn switch new-branch-URL .
(注意点)
根据其命令行的帮助,svn copy可以从一个目录复制到一个版本库URL。 所以你应该能够将你的工作副本复制到分支,例如:
svn copy working_directory url_to_branch
SVN书( http://svnbook.red-bean.com/en/1.6/svn-book.html#svn.branchmerge.using.create )不build议从本地工作副本创build分支。
虽然也可以通过使用
svn copy
来复制工作副本中的目录来创build分支,但不build议使用此技术。 实际上它可能会很慢! 在客户端复制目录是一个线性时间操作,因为它实际上必须复制本地磁盘上工作副本目录中的每个文件和子目录。
相反,首先创build分支,然后使用svn switch
命令,以便您可以提交更改。 如果您的工作副本显着过期,请将“@REV”附加到源URL,其中“REV”是svn info
报告的工作副本的修订版本。
但是,在服务器上复制一个目录是一个常量操作,而且这是大多数人创build分支的方式。
$ 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客户端:TortoiseSVN这足以:
- 右键点击我要分支的顶层目录
- 在“到URL”中select你的仓库中的分支目录
- 在“从存储库创build副本”框中select“工作副本”
完成:)
这就像复制本地版本到指定的版本库url一样。
是的,你可以通过SVN命令行以及tortoiseSVN来做到这一点。
你必须指定你的SVN工作拷贝作为src和你的新分支作为目的地
svn copy <file/path/to/working/copy> <URL/TO/REPOSITORY/BRANCH>
命令。
在TortoiseSVN中,只需指向您的工作副本,从上下文菜单中select“分支/标签”,然后select“在存储库中创build副本:”中的“工作副本”
请注意,以这种方式创build标签并不是一个好主意(为了可追踪的原因),但是对于分支来说,它是非常好的。