SVN分支提交 - 实验性提交

11

我写了一些实验性的代码,想要将其保存到代码库中,但不想放到主分支上。你该如何提交到一个分支中?

也许我理解有误,但据我所知,分支其实就是将已经检入的代码复制到存储库中的另一个目录。我想可以将主分支复制到另一个位置,然后将工作副本的存储库位置指针指向那个位置,再提交实验性代码。但这似乎有点繁琐。这就是你真正要做的吗?

3个回答

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


从技术角度来说,你应该使用工作副本的版本创建分支,而不是ToT,对吧? - khatchad

2
一个 SVN 分支并不会复制所有的代码,它只是引用原始代码,并添加您新代码的差异。另一个好处是,您可以随时将分支与其源合并或同步。分支只是 SVN 存储库中的另一个文件夹,就像标签或主干一样。
我建议在切换分支之前创建备份,以防意外覆盖您现有的更改。
您可以在免费的 SVN 书籍中找到有关 SVN 分支的命令和更多信息。 SVN Book

1

据我所知,大多数带有图形用户界面的 SVN 客户端(例如 Tortoise、Subclipse、SvnX)都有一个分支命令可以为您完成魔法。

否则,请参见 Greg 的答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接