241

可能重复:
“分支”、“标签”和“主干”的真正含义是什么?

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

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

4

9 回答 9

297

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

分支是开发的一个副线,用于在不惹恼主干版本用户的情况下进行更大的、实验性的或破坏性的工作。此外,分支可用于为同一产品的多个版本创建开发线,例如将错误修复反向移植到稳定版本中。

最后,标签是用来突出存储库历史中显着修订的标记,通常是“这是作为 1.0 发布的”。

请参阅 HTML 版本的“使用 Subversion 进行版本控制”,尤其是第 4 章:分支和合并,或以纸质形式购买(例如从amazon购买),以深入讨论技术细节。

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


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

于 2009-03-30T18:22:39.653 回答
37

“主干”、“分支”和“标签”目录是Subversion 中的约定。Subversion 不需要您拥有这些目录,也不需要为它们指定特殊含义。但是,这种约定非常普遍,除非您有充分的理由,否则您应该遵守约定。其他读者提供的书籍链接描述了约定以及如何使用它。

于 2009-03-30T18:31:32.470 回答
27

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

于 2009-03-30T18:50:33.970 回答
18

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

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

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

于 2009-03-30T18:02:39.623 回答
10

要在 Visual Studio 2008 中使用 Subversion,请安装TortoiseSVNAnkhSVN

TortoiseSVN是一款非常易于使用的 Windows 版本控制/版本控制/源代码控制软件。由于它不是针对特定 IDE 的集成,因此您可以将它与您喜欢的任何开发工具一起使用。TortoiseSVN 可以免费使用。您无需获得贷款或支付全部年薪即可使用它。

AnkhSVN是 Visual Studio 的 Subversion SourceControl 提供程序。该软件允许您直接从 Microsoft Visual Studio IDE 内部执行最常见的版本控制操作。使用 AnkhSVN,您不再需要离开 IDE 来执行查看源代码状态、更新 Subversion 工作副本和提交更改等任务。您甚至可以浏览您的存储库,并且可以插入您最喜欢的差异工具。

于 2009-03-30T18:06:50.003 回答
8

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

TortoiseSVN有很好的文档和一个很棒的差异工具。

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

于 2009-03-30T18:05:44.437 回答
6

如果您是 Subversion 的新手,您可能想查看 SmashingMagazine.com 上的这篇文章,标题为Ultimate Round-Up for Version Control with SubVersion

它涵盖了 SubVersion 的入门以及教程、参考资料和书籍建议的链接。

它涵盖了工具(许多是兼容的窗口),并提到AnkhSVN作为与 Visual Studio 兼容的插件。评论还提到VisualSVN作为替代方案。

于 2009-03-30T18:13:02.217 回答
5

如果你有一个开发团队,一个很棒的免费实用程序是SVN Monitor。它可以作为你的树的心跳,告诉你什么时候有更新、可能的冲突等。不过,它对一个单独的开发者来说并不是那么有用。

于 2009-03-30T18:27:59.420 回答
4

一本关于 Subversion 的好书是Pragmatic Version Control using Subversion解释了您的问题,它提供了更多信息。

于 2009-03-30T18:12:59.753 回答