版本控制和Altium Designer

Old Content - visit altium.com/documentation

电 子写作及编辑环境最大的优点之一是便于创建和修改文件。这意味着作者能够快速抓住思路进行探索,进而形成成熟的观点,对象可以是代码、用户文档、图像或演 示文稿。但这也意味着很难跟踪重要文件的改动。由于需要跟踪文件改动,以及需要一套系统解决方案来管理以电子形式录入的源代码,版本控制系统应运而生。版 本控制系统作为软件工具不仅能够维护各种文件版本的历史记录,还支持打开文件的任一版本以及ASCII文件,比较任意两个文件版本之间的区别。

版 本控制系统可以独立于文件的写作和编辑环境运行。通过一个接口将文件录入中央储存区——即存储库,其检出功能可以将文件从存储库复制到工作文件夹中,更新 功能可以将更改内容重新检入,并记录更改信息。版本控制系统通常还会处理如下情况:即文件被多人检出并修改,而这些人在检入自己更改的文件时会将他人的文 件覆盖,从而导致其他人检入的最新版本丢失。这种情况需要利用比较工具来比较文件版本找出差异,然后利用交互式工具将差异合并至文件的单个版本中。

了解版本控制系统的术语至关重要。尽管有多种可用的 系统,它们通常会使用类似的术语来描述其功能。

版本控制基础知识

版 本控制系统的主要工作方法是从存储库中将项目文件“更新”或”检出”至工作文件夹中。这些文件可以修改并保存,之后可将更新后的文件“提交”或“检入”版 本控制系统(VCS)存储库中。检出和检入都需要通过版本控制系统接口进行,Altium Designer已将此接口集成到存储管理器面板和项目面板中。

Altium Designer与版本控制系统(VCS)的接口简图

版本控制系统工作的关键是时刻对已检出中央存储库的文件进行状态监控。这意味着版本控制系统知道某文件是否已检出至工作文件夹、以何种 版本检出以及检出后是否被修改过。各版本控制系统有其自身的文件监控方法。若想了解更多信息,请参考版本控制系统文档。

上 图显示了项目My.PrjPcb的三个文件。各文件的所有不同版本将显示在存储库中,而工作文件夹中是最新的检出副本。当工作文件夹中的项目在 Altium Designer环境下打开时,Altium Designer将识别出该项目文件是否在版本控制下,存储管理器和项目面板中将显示各文件的当前版本控制状态。

利用存储管理器面板的右键 菜单可以执行标准的版本控制系统操作,例如检入已改动的文件。当右键单击并选择提交时,版本控制系统即从工作文件夹中获取文件副本、增加版本号(存储在内 部版本控制系统中),并将文件副本连同日志消息(输入对文件改动的描述)储存在存储库中。大多数版本控制系统在每次提交时不会储存整个文件,而是只保存与 先前版本的差异。

在版本控制下访问文件

一般有两种不同的方法允许多名小组成员访问同一组文件。你可以:

  • 允许多次检出(简称无限制的检出模型)
  • 将文件访问限制为单次单人(简称锁定-修改-解锁,或专有检出模型)

理 想状态是允许检出多个文件,因为系统允许不同的小组成员继续独立工作,而不必等待其他人重新检入文件。然而,这要求具备合理的工具和科技来解决一个不可避 免的问题:两个人对同一个文件都进行了修改。目前有些合并工具可以将更改内容合并在ASCII文件中,但它们一般都不支持在二进制文件中进行改动合并。 Altium Designer包括了原理图和PCB对比能力。虽然Altium Designer可以检测到两个原理图版本间或两个PCB版本间的差异,但目前并不支持合并,所以必须手动解决这些差异。

See Also

References

SVN community website http://subversion.apache.org/
SVN online manual http://svnbook.red-bean.com/
CVS community website https://www.cvshome.org/
CVS installation tips http://www.cvsnt.org/wiki/InstallationTips
CVS manual (known as the Cederqvist, after the author) https://www.cvshome.org/docs/manual/
Using and administering CVS http://cvsbook.red-bean.com/cvsbook.html
Alternate CVS download site http://www.cvsnt.com
Source Control How-to, by Eric Sink http://www.ericsink.com/scm/source_control.html

You are reporting an issue with the following selected text and/or image within the active document: