2010-03-13 164 views
11

我做了一些实验代码,我想保存在存储库中,但我不希望它在主分支上。你如何将这个交给分支?svn分支提交 - 实验提交

也许我得到了这个错误,但是我对分支的理解,你实际上做的是将已经签入的代码复制到存储库中的另一个目录。我想可以将主分支复制到另一个位置,然后将工作副本存储库位置指针更改为指向该位置,然后提交实验代码。但是这似乎有点冗长。这真的是你怎么做到的?

回答

14

那的确是你如何做到这一点(至少在颠覆)。例如:

 
svn cp svn://server/repo/trunk svn://server/repo/branches/experiment 
svn switch svn://server/repo/branches/experiment 
svn commit -m "testing stuff" 

的颠覆cp(复印件)操作的设计是非常便宜,实际上并没有使所有的代码副本在你的仓库一次。它只是设置指向您在trunk中复制的修订的指针。

并非所有系统都以这种方式工作;例如在Git中,您可以创建一个新分支并使用一个命令切换到它:git checkout -b experiment

+0

从技术上讲,你应该使用创建分支修改你的工作副本而不是ToT,不是吗? – 2014-05-30 04:51:39

2

SVN分支不会再次复制所有代码,它只是引用原始代码,并添加新代码的Diff。分支的另一件好事是您可以随时将其与源代码合并或同步。分支只是SVN库中的另一个文件夹,如标签或中继。

我会建议在切换分支之前创建备份,以免错误覆盖现有的更改。

您可以找到有关SVN分支的命令和信息的自由SVN Book

1

据我所知最具有GUI SVN客户端(如龟,Subclipse的,SvnX有一个分支指令,做的魔力为你。

否则看到格雷格的答案。