可能的重复: “树枝”、“标签”和“树干”到底是什么意思?
Subversion中的主干、分支和标记是什么?使用它们的最佳实践是什么?
我可以在Visual Studio 2008中使用哪些工具进行Subversion ?
可能的重复: “树枝”、“标签”和“树干”到底是什么意思?
Subversion中的主干、分支和标记是什么?使用它们的最佳实践是什么?
我可以在Visual Studio 2008中使用哪些工具进行Subversion ?
开始学习Subversion的一个好地方是http://svnbook.red-bean.com/。
就Visual Studio工具而言,我喜欢AnkhSVN,但我还没有尝试过VisualSVN插件。
VisualSVN确实依赖于TortoiseSVN,但TortoiseSVN也是Ankh的一个很好的补充。
主干被认为是主代码库,是主干的分支分支。比如,如果你想实现一个新特性,但又不想影响主干,你可以创建一个分支。
TortoiseSVN有良好的文档,和一个伟大的差异工具。
我使用Visual studio,我使用VisualSVN和TortoiseSVN。
要在Visual Studio 2008中使用Subversion,请安装TortoiseSVN和AnkhSVN。
TortoiseSVN is a really easy to use Revision control / version control / source control software for Windows. Since it's not an integration for a specific IDE you can use it with whatever development tools you like. TortoiseSVN is free to use. You don't need to get a loan or pay a full years salary to use it. AnkhSVN is a Subversion SourceControl Provider for Visual Studio. The software allows you to perform the most common version control operations directly from inside the Microsoft Visual Studio IDE. With AnkhSVN you no longer need to leave your IDE to perform tasks like viewing the status of your source code, updating your Subversion working copy and committing changes. You can even browse your repository and you can plug-in your favorite diff tool.
如果你是Subversion的新手,你可能想看看SmashingMagazine.com上的这篇文章 标题为“SubVersion版本控制终极综述”。
它涵盖了如何开始使用SubVersion,并提供了到教程、参考资料和书籍建议的链接。
它涵盖了工具(许多是兼容的窗口),并提到AnkhSVN是Visual Studio兼容的插件。注释还提到了VisualSVN作为替代方案。
中继是SVN存储库中的开发主线。
分支是开发的副线,创建的目的是在不惹恼主干版本的用户的情况下,使工作变得更大、更实验性或更具破坏性。此外,分支还可以用于为同一产品的多个版本创建开发线,比如有一个地方可以将错误修复后移植到稳定的版本中。
最后,标记是用来突出存储库历史中值得注意的修订的标记,通常是像“此版本发布为1.0”这样的东西。
请参阅“版本控制与颠覆”的HTML版本,特别是第4章:分支和合并,或购买纸质版(例如从亚马逊购买),以深入讨论技术细节。
就像其他人(例如下面的Peter Neubauer)一样,作为/tags /branches和/trunk目录的底层实现只是常规的,而不是由工具强制执行的。违反这些约定会导致混乱,因为这会破坏其他人访问存储库的习惯和期望。必须特别注意避免将新更改提交到标记中,标记应该被冻结。
我使用TortoiseSVN,但没有Visual Studio集成。我在第二个监视器上一直打开“检查修改”对话框,这样我就可以跟踪我碰过哪些文件。但请参阅“最佳SVN工具”问题,以获得更多建议。
如果您有一个开发人员团队,可以使用一个很棒的免费实用程序SVN Monitor。它充当树的心跳,告诉您何时有更新、可能的冲突等。但这对于独立开发者来说并不是很有用。
“主干”、“分支”和“标记”目录是Subversion中的约定。Subversion不要求您拥有这些目录,也不要求为它们赋予特殊含义。然而,这种惯例是非常常见的,除非你有一个非常好的理由,否则你应该遵循惯例。其他读者提供的书籍链接描述了这种惯例以及如何使用它。
David Schmitt的回答很好地总结了这一点,但我认为需要注意的是,对于SVN来说,术语“分支”、“标签”和“主干”没有任何意义。这些术语是纯语义的,仅影响作为系统用户的我们对待这些目录的方式。人们可以很容易地将它们命名为“主”、“测试”和“发布”。只要使用系统的每个人都理解如何正确使用每个部分,那么它们被称为什么并不重要。