如何有效使用SVN?

时间:2010-04-12 10:33:54

标签: svn tortoisesvn

  

可能重复:
  how does version control work?

我有一个我在VPS上设置的SVN存储库,我知道所有基础知识(更新,提交),但我不知道所有其他选项的含义。

我在Windows上运行TortoiseSVN(非常棒!)并且可以看到所有这些功能,如分支,锁定,合并和修补!所有这些都意味着什么?

有没有关于SVN中所有小部件如何工作的良好指导?

谢谢,

4 个答案:

答案 0 :(得分:5)

Version Control with Subversion是一本很好的免费在线图书,可以帮助解释其他功能。

答案 1 :(得分:1)

正如其他人所说,对于Subversion,最好的来源是SVN RedBook,你可以找到here

对于TortoiseSVN,网上有很多很好的教程,比如IgorExchange tutorial

答案 2 :(得分:1)

红皮书很棒。与Eric Sink's Howto一样(适用于所有版本控制系统)。

但是,非常简单地说,即使您是一名开发人员,也要设置这些顶级目录,事情将开始变得有意义:

  • trunk - 主要代码分支,正常工作在这里
  • 分支 - 在此处设置新分支,有利于实验,稳定&维护发布版本
  • 标记 - 在此处创建新分支,然后不管它们,让您为项目指定特定版本(例如,发布版本)

这些术语的简要说明:

  • 分支 - 名词。一组容器,用于一组更改(只是一个文件夹)。动词。从现有容器创建一个新容器(这是创建除trunk之外的分支的唯一方法,所有分支最终都来自trunk)。
  • 标记 - 不会更改的分支。
  • 合并(分支机构) - 动词。将一组更改从一个分支复制到另一个分支的操作​​。涉及合并对分支中每个文件所做的更改。
  • 合并(文件) - 动词。将对分支中的一个文件所做的更改应用于另一个分支中的等效文件的行为。
  • 锁定 - 名词。防止其他人对同一分支上的同一文件进行更改的机制。适用于无法合并的文件,如图像。跨分支不起作用。动词。使用该机制的行为。
  • 补丁 - 名词。包含一组特殊格式更改的文本文件。用于从无权访问存储库的人员发送或接收更改。动词。创建或应用补丁的行为。此外,有时是对特定版本的代码进行修复的行为。

现在(因为它是午餐)一个故事作为一个例子,如何使用其中一些:

开发人员获取他们项目的所有代码并将其转储到SVN中。然后,他们创建一个“trunk”文件夹,并将所有代码移动到此文件夹中,从而创建主干分支。

开发人员想尝试一些东西,所以将trunk分支复制到/ branches / experiment1。这个实验分支被检查到它自己的文件夹,并在旁边进行了一些工作。

对行李箱也进行了一些正常的发展变化。

开发人员决定实验性更改是好的,并将实验分支的更改合并回主干。这种合并称为重新融合。实验分支现已删除,因为它已完成。如果实验进展不顺利,那么分支可能刚刚被删除而根本没有污染干线。

开发人员想要发布项目,因此将最新的主干复制到标签中为/tags/v1.0 该项目是根据此标记构建的,并向公众发布。

在主干分支上继续开发。

在v1.0中发现了一个错误,开发人员将标记分支到/branches/fix1.0并进行修复,然后再次分支到/tags/v1.1。发布版本来自/tags/v1.1。

/branches/fix1.0中所做的更改将合并到trunk中,以便它们不会丢失,并且fix1.0将被删除,因为它现在已经完成了。

答案 3 :(得分:0)

某些功能适用于多用户环境 - 例如锁定和其他功能。但对于单人项目,你不会使用锁定。

正如其他人所建议的那样,如果您能阅读SVN,将会有所帮助。检查提供的其中一个链接。

祝你好运。