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

有帮助吗?

解决方案

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

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

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

其他提示

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

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

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

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

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

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

这里有两篇文章对于理解基础知识非常有帮助。除了信息丰富之外,Sink 的公司还销售一款名为 Vault 的优秀源代码控制产品,该产品对单个用户免费(我与该公司没有任何关系)。

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

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

Vault 信息请访问 www.vault.com。

即使您不分支,您也可能会发现使用标签来标记版本很有用。

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

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

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

设置 Subversion 的通用标准是在存储库的根目录下包含三个文件夹:树干、树枝和标签。trunk 文件夹保存着您当前的“主”开发线。对于许多商店和情况来说,这就是他们所使用的一切......只是一个工作代码存储库。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top