7

我已经尝试对几个项目使用源代码控制,但仍然不太了解。对于这些项目,我们使用了 TortoiseSVN,并且只进行了一行修改。(没有主干、分支或任何其他。)如果有推荐的方法来设置源代码控制系统,它们是什么?这样设置的原因和好处是什么?集中式和分布式源代码控制系统的工作方式之间的根本区别是什么?

4

5 回答 5

8

将源代码管理视为源代码的巨大“撤消”按钮。每次签入时,您都会添加一个可以回滚的点。即使您不使用分支/合并,仅此功能就非常有价值。

此外,通过拥有一个“权威”版本的源代码控制,备份变得更加容易。

集中式与分布式……区别在于,在分布式中,不一定有一个“权威”版本的源代码控制,尽管实际上人们通常仍然拥有主树。

分布式源代码控制的最大优势有两个:

  1. 当您使用分布式源代码控制时,您的本地计算机上拥有整个源代码树。您可以提交、创建分支和工作,就像您一个人一样,然后当您准备好推送您的更改时,您可以将它们从您的机器提升到主副本。如果您经常“离线”工作,这可能是一个巨大的好处。

  2. 您无需征得任何人的许可即可成为源代码管理的分销商。如果 A 人正在运行项目,但 B 和 C 人想要进行更改并相互共享这些更改,那么使用分布式源代码控制会变得更加容易。

于 2008-08-17T01:39:54.310 回答
6

我建议查看 Eric Sink 的以下内容:

http://www.ericsink.com/scm/source_control.html

拥有某种版本控制系统可能是程序员审查代码更改和了解谁对谁做了什么的最重要工具。即使对于单人项目,能够将当前代码与以前已知的工作版本进行比较以了解由于更改而可能出现的问题是非常宝贵的。

于 2008-08-17T01:44:24.237 回答
3

这里有两篇对理解基础知识非常有帮助的文章。除了提供信息之外,Sink 的公司还销售一个伟大的源代码控制产品,称为 Vault,它对单个用户免费(我与该公司没有任何关联)。

http://www.ericsink.com/scm/source_control.html

http://betterexplained.com/articles/a-visual-guide-to-version-control/

www.vault.com 上的保险柜信息。

于 2008-08-17T01:47:59.377 回答
1

即使你不分支,你也会发现使用标签来标记发布很有用。

想象一下,您昨天推出了软件的新版本,并开始对下一个版本进行重大更改。一位用户打电话给您报告昨天发布的一个严重错误。您不能只是修复它并从您的开发主干复制更改,因为您刚刚使整个事情变得不稳定的更改。

如果您已经标记了该版本,您可以查看它的工作副本并使用它来修复错误。

然后,您可以选择在标签上创建一个分支并将错误修复签入其中。这样,您可以在继续升级主干的同时修复该版本上的更多错误。您还可以将这些修复合并到主干中,以便它们将出现在下一个版本中。

于 2008-08-17T01:47:18.473 回答
1

设置 Subversion 的通用标准是在存储库的根目录下拥有三个文件夹:主干、分支和标签。主干文件夹包含您当前的“主要”开发线。对于许多商店和情况,这就是他们所使用的全部......只是一个单一的工作代码存储库。

标签文件夹更进一步,允许您在某些时间点“检查”您的代码。例如,当您发布新版本时,或者有时甚至只是制作新版本时,您会将副本“标记”到此文件夹中。这只是让您准确地知道您的代码在那个时间点的样子。

分支文件夹包含您在特殊情况下可能需要的不同类型的分支。有时,分支是一个研究实验性功能或可能需要很长时间才能稳定的功能的地方(因此您还不想将它们引入您的主线)。其他时候,一个分支可能代表你的代码的“生产”副本,它可以独立于你的主代码行进行编辑和部署,其中包含用于未来版本的更改。

无论如何,这只是如何设置系统的一个方面,但我认为对这种结构进行一些思考很重要。

于 2008-08-17T01:51:00.743 回答