可能的重复: “树枝”、“标签”和“树干”到底是什么意思?

Subversion中的主干、分支和标记是什么?使用它们的最佳实践是什么?

我可以在Visual Studio 2008中使用哪些工具进行Subversion ?


当前回答

如果您有一个开发人员团队,可以使用一个很棒的免费实用程序SVN Monitor。它充当树的心跳,告诉您何时有更新、可能的冲突等。但这对于独立开发者来说并不是很有用。

其他回答

中继是SVN存储库中的开发主线。

分支是开发的副线,创建的目的是在不惹恼主干版本的用户的情况下,使工作变得更大、更实验性或更具破坏性。此外,分支还可以用于为同一产品的多个版本创建开发线,比如有一个地方可以将错误修复后移植到稳定的版本中。

最后,标记是用来突出存储库历史中值得注意的修订的标记,通常是像“此版本发布为1.0”这样的东西。

请参阅“版本控制与颠覆”的HTML版本,特别是第4章:分支和合并,或购买纸质版(例如从亚马逊购买),以深入讨论技术细节。

就像其他人(例如下面的Peter Neubauer)一样,作为/tags /branches和/trunk目录的底层实现只是常规的,而不是由工具强制执行的。违反这些约定会导致混乱,因为这会破坏其他人访问存储库的习惯和期望。必须特别注意避免将新更改提交到标记中,标记应该被冻结。


我使用TortoiseSVN,但没有Visual Studio集成。我在第二个监视器上一直打开“检查修改”对话框,这样我就可以跟踪我碰过哪些文件。但请参阅“最佳SVN工具”问题,以获得更多建议。

开始学习Subversion的一个好地方是http://svnbook.red-bean.com/。

就Visual Studio工具而言,我喜欢AnkhSVN,但我还没有尝试过VisualSVN插件。

VisualSVN确实依赖于TortoiseSVN,但TortoiseSVN也是Ankh的一个很好的补充。

David Schmitt的回答很好地总结了这一点,但我认为需要注意的是,对于SVN来说,术语“分支”、“标签”和“主干”没有任何意义。这些术语是纯语义的,仅影响作为系统用户的我们对待这些目录的方式。人们可以很容易地将它们命名为“主”、“测试”和“发布”。只要使用系统的每个人都理解如何正确使用每个部分,那么它们被称为什么并不重要。

“主干”、“分支”和“标记”目录是Subversion中的约定。Subversion不要求您拥有这些目录,也不要求为它们赋予特殊含义。然而,这种惯例是非常常见的,除非你有一个非常好的理由,否则你应该遵循惯例。其他读者提供的书籍链接描述了这种惯例以及如何使用它。

主干被认为是主代码库,是主干的分支分支。比如,如果你想实现一个新特性,但又不想影响主干,你可以创建一个分支。

TortoiseSVN有良好的文档,和一个伟大的差异工具。

我使用Visual studio,我使用VisualSVN和TortoiseSVN。