我做了一些实验代码,我想保存在存储库中,但我不希望它在主分支上。你如何将这个交给分支?svn分支提交 - 实验提交
也许我得到了这个错误,但是我对分支的理解,你实际上做的是将已经签入的代码复制到存储库中的另一个目录。我想可以将主分支复制到另一个位置,然后将工作副本存储库位置指针更改为指向该位置,然后提交实验代码。但是这似乎有点冗长。这真的是你怎么做到的?
我做了一些实验代码,我想保存在存储库中,但我不希望它在主分支上。你如何将这个交给分支?svn分支提交 - 实验提交
也许我得到了这个错误,但是我对分支的理解,你实际上做的是将已经签入的代码复制到存储库中的另一个目录。我想可以将主分支复制到另一个位置,然后将工作副本存储库位置指针更改为指向该位置,然后提交实验代码。但是这似乎有点冗长。这真的是你怎么做到的?
那的确是你如何做到这一点(至少在颠覆)。例如:
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
。
SVN分支不会再次复制所有代码,它只是引用原始代码,并添加新代码的Diff。分支的另一件好事是您可以随时将其与源代码合并或同步。分支只是SVN库中的另一个文件夹,如标签或中继。
我会建议在切换分支之前创建备份,以免错误覆盖现有的更改。
您可以找到有关SVN分支的命令和信息的自由SVN Book
据我所知最具有GUI SVN客户端(如龟,Subclipse的,SvnX有一个分支指令,做的魔力为你。
否则看到格雷格的答案。
从技术上讲,你应该使用创建分支修改你的工作副本而不是ToT,不是吗? – 2014-05-30 04:51:39