什么是Subversion中的trunk,branch和tag?

可能重复:
“分支”,“标签”和“后备箱”是什么意思?

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

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

主干是SVN存储库的主要开发工具。

一个分支是开发的一个侧线,用于在不干扰中继版本的用户的情况下做出更大的,实验性的或干扰性的工作。 此外,可以使用分支来为同一产品的多个版本创build开发线,例如有一个地方可以将错误修复反向移植到一个稳定版本中。

最后, 标记是突出显示版本库历史上显着版本的标记,通常是“这被释放为1.0”的东西。

请参阅“ 使用Subversion进行版本控制 ”的HTML版本,特别是第4章:分支和合并,或者在纸上购买(例如从亚马逊 )来深入讨论技术细节。

作为其他人(例如下面的Peter Neubauer),作为/tags /branches/trunk目录的底层实现只是常规的,而不是由这些工具强制执行。 违反这些约定导致四处混淆,因为这打破了访问存储库的其他人的习惯和期望。 必须特别小心,以避免对应该被冻结的标签进行新的更改。


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

“trunk”,“branches”和“tags”目录是Subversion中的约定 。 Subversion不需要你拥有这些目录,也不需要为它们指定特殊的含义。 但是,这个惯例是非常普遍的,除非你有一个很好的理由,否则你应该遵循惯例。 其他读者给出的这本书描述了这个约定以及如何使用它。

大卫·施密特(David Schmitt)的回答总结得非常好,但我认为重要的是要注意,对于SVN来说,术语“分支”,“标签”和“主干”并不意味着什么。 这些术语纯粹是语义的,只影响我们作为系统用户处理这些目录的方式。 人们可以很容易地将它们命名为“主要”,“testing”和“发布”。 只要使用该系统的每个人都明白如何正确使用每个部分,那么他们被称为什么并不重要。

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

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

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

要在Visual Studio 2008中使用Subversion,请安装TortoiseSVN和AnkhSVN 。

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

AnkhSVN是Visual Studio的Subversion SourceControl Provider。 该软件允许您直接从Microsoft Visual Studio IDE中执行最常见的版本控制操作。 使用AnkhSVN,您不再需要让IDE执行诸如查看源代码状态,更新Subversion工作副本和提交更改等任务。 你甚至可以浏览你的仓库,你可以插入你最喜欢的diff工具。

干线被认为是你的主要代码库,干线的分支分支。 就像你想创build一个分支,如果你想实现一个新的function,但不想影响主干。

TortoiseSVN有很好的文档和一个很好的diff工具。

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

如果您是Subversion的新手,您可能需要查看SmashingMagazine.com上的这篇文章,标题为“ Ultimate版本控制带版本控制”

它涵盖了SubVersion入门指南,参考资料和书籍build议

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

SVN Monitor是一个非常棒的免费工具,如果你有一个开发团队的话。 它作为你的树的心跳,告诉你什么时候有更新,可能的冲突等等。然而这对于一个独立开发者来说并不是那么有用。

关于Subversion的一本好书是使用Subversion进行的语用版本控制 ,其中解释了您的问题,并提供了更多信息。