svn branch commit - 实验提交

时间:2010-03-13 23:00:50

标签: svn branch commit

我已经制作了一些我希望保存在存储库中的实验代码,但我不希望它在主分支上。你会如何将它交给一个分支?

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

3 个答案:

答案 0 :(得分:14)

确实是这样做的(至少在Subversion中)。例如:

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

Subversion cp(复制)操作非常便宜,并且实际上并不会再次复制存储库中的所有代码。它只是设置指针指向您在trunk中复制的修订版。

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

答案 1 :(得分:2)

SVN分支不会再次复制所有代码,只是引用原始代码,并添加新代码的Diff。分支的另一个好处是,您始终可以将其与源进行合并或同步。分支只是SVN Repository中的另一个文件夹,如标签或主干。

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

您可以在免费的SVN Book

中找到有关SVN分支的命令和更多信息

答案 2 :(得分:1)

AFAIK大多数拥有GUI的SVN客户端(例如Tortoise,Subclipse,SvnX都有一个分支命令,可以帮助你。

否则请参阅Greg的回答。