上一页 下一页

版本控制基础

Enterprise Architect通过将Package数据从项目数据库导出到XMI Package文件来实现模型的版本控制,这些文件位于源代码控制应用程序的版本控制之下。XMI文件格式的合并方式与普通文本文件可以合并的方式相同,这就是Enterprise Architect必须强制执行版本控制包的序列化编辑的原因,如此处所述。

锁定修改解锁解决方案

许多版本控制系统使用锁定 - 修改 - 解锁模型来解决共享源中不同作者覆盖彼此工作的问题。在此模型中,版本控制存储库一次只允许一个人更改文件,并使用锁管理访问。

Harry必须先锁定文件才能开始对其进行更改。如果Harry锁定了文件,Sally也无法锁定它,因此无法对该文件进行任何更改。她所能做的就是阅读文件,等待Harry完成更改并释放锁定。在Harry解锁文件后,Sally可以轮流锁定和编辑文件。

复制 - 修改 - 合并解决方案

Subversion,CVS和许多其他版本控制系统使用复制 - 修改 - 合并模型作为锁定的替代方案。在此模型中,每个用户的客户端都联系项目存储库并创建个人工作副本 - 存储库文件和目录的本地反映。然后,用户可以同时独立工作,修改他们的私人副本。在适当的时候,私有副本将合并为一个新的最终版本。版本控制系统通常协助合并,但最终一个人有责任使其正确发生。

当锁定是必要的

虽然锁定 - 修改 - 解锁模型通常被认为是协作的障碍,但仍有时需要锁定。

复制 - 修改 - 合并模型基于以下假设:文件是上下文可合并的:即,存储库中的文件是基于行的文本文件(例如程序源代码)。但是,对于具有二进制格式的文件(例如艺术作品或声音),通常无法合并冲突的更改。在这些情况下,用户确实需要在更改文件时采取严格的转变。如果没有序列化访问,一些用户最终会在最终被覆盖的更改上浪费时间。

学到更多