在“并发版本控制系统”(CVS)小组编程环境中,小组成员在他们自已的工作台中独立完成所有工作。最终,他们将希望共享他们的工作。他们可以通过“CVS 存储库”实现此目的。
CVS 使用分支模型来支持彼此有些独立但仍高度相互依赖的多项工作。分支是开发小组共享和集成正在进行的工作的地方。可将分支认为是一个共享工作空间,当小组成员对项目进行更改时就会更新该工作空间。此模型允许各个成员从事 CVS 小组项目,在进行更改时与其他成员共享他们的工作以及在项目进展时了解其他成员的工作。在存储库中,称为 HEAD 的一个特殊分支表示工作的主线(HEAD 通常称为干线)。
当小组成员完成新的工作时,他们通过将更改落实至分支来共享此工作成果。同样地,当他们想要获取最新的可用工作成果时,他们将本地工作空间更新为分支上的更改。因此,当小组成员提交新的工作成果时,分支就在不断地更改并向前发展。
分支有效地表示了项目的当前状态。在任何时候,小组成员都可以从分支更新他们的工作空间,从而知道工作空间是最新的。
CVS 提供在小组中工作所需的两个重要功能部件:
小组提交的工作的历史
协调和集成此工作的方法
维护历史是很重要的,它使得人们能够将当前工作与先前的工作进行比较,还原为状态较好的旧工作等等。协调工作是很关键的,以便存在一个当前项目状态定义,它包含了小组的集成工作。此协调是通过分支模型提供的。
最优模型就是任何小组成员都可以在其中更改他或她具有访问权的任何资源的模型。由于两个小组成员可以落实至对同一资源的分支更改,所以可能会发生冲突且必须处理它们。此模型称为最优模型,因为假定它发生的冲突很少。
通常,资源不会孤立存在,它们通常包含其它资源的隐式或显式依赖项。例如,Web 页面具有指向其它 Web 页面的链接,而源代码具有对在其它源代码资源中描述的工件的引用。没有孤立的资源。
将资源落实至分支时,这些依赖项可能会受到影响。由于分支表示当前项目状态,从而确保依赖项的完整性是很重要的:在任何时候,小组成员都可以将分支内容用作新工作的基础。
因此,理想的工作流程就是保留分支完整性的工作流程。
理想工作流程按如下方式进行:
开始。开始工作之前,用当前分支状态更新工作空间中的资源。如果您确定没有您关心的本地工作,则最快的获取方法是从分支(或 HEAD)中选择您感兴趣的项目并选择检出(或者,如果项目在本地已经存在,则选择替换为 > 存储库中的最新内容)。这将用分支中的内容覆盖本地资源。
进行更改。在“工作台”本地工作,创建新的资源,修改现有资源以及完成时在本地保存资源。
同步。当准备好落实工作成果时,与存储库同步。
更新。检查传入更改并将它们添加至本地“工作台”。这允许您确定是否存在可能影响将落实的内容的完整性的更改。解决冲突。重新测试并运行完整性检查器(例如,检查断开的超文本链接及确保代码编译等等)。
落实。既然确信您的更改已与最新的分支内容很好地集成在一起,就将更改落实至分支。为谨慎起见,可重复先前的步骤(如果有新的传入更改的话)。
这自然就是一个理想的工作流程。在某些情况下,您可能确信传入更改对您毫无影响,从而选择落实而不进行更新。然而,小组成员通常应尽量遵循类似上述的流程来确保不会意外危及分支完整性。
可在以下网址中找到有关 CVS 的更多信息:https://www.cvshome.org。
创建 CVS 存储库位置
从 CVS 存储库检出项目
替换工作台中的资源
使用 CVS 共享新项目
与存储库同步
更新
解决冲突
从分支合并
落实