我已经制作了一些我希望保存在存储库中的实验代码,但我不希望它在主分支上。你会如何将它交给一个分支?
也许我弄错了,但是我对分支的理解,你所做的一切就是将已检入代码复制到存储库中的另一个目录。我想可以将主分支复制到另一个位置,然后将工作副本存储库位置指针更改为指向该位置,然后提交实验代码。但这似乎有点啰嗦。这真的是你怎么做的?
答案 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的回答。