他指出,每个版本控制系统都必须具有通用属性。第一,它应该提供对单个资产或对象的修订控制。第二,它应该提供明显的版本控制,他称之为快照,由资产的特定修订组成。第三,它应该应用生命周期跟踪。Parker所说的生命周期指的是用户版本中的每一个步骤,从开发到质量保证,以及描述该版本的特定生命周期的其他步骤。
软件版本控制的第四个关键方面是提供受保护的工作空间,他说,“这样不同的团队可以应用不同的更改,而不影响其他人。”一个真正的版本问题是存在的,例如,在三个应用程序中使用共享组件的公共库,Parker说。“你有三个不同的团队都在工作,都在前进。图书馆也在扩建。你需要被允许进入公共图书馆,”帕克解释道。但你也需要一个普通的、受保护的工作场所,他说。然后必须发生的是,开发人员可以访问信息,但不能更改库。
是什么驱动了版本控制的需要?软件配置管理(SCM)就是这样。这是最上面的一层。它是一个看门人,”鲍勃·詹金斯说,他是CollabNet的首席合作顾问。www.collab.net该公司提供按需分布式软件开发解决方案,比如Subversion。Subversion是一种开源的广域网络技术,可以集中对位于不同地方的同一软件所做的版本控制更改。“SCM通常与一个跟踪、问题、检测和改进的系统捆绑在一起。大多数SCM是外部的,但与版本控制技术紧密集成,”Jenkins解释道。
但是在版本控制和SCM之间只有一行——不是跨越,他说。“你是否从版本控制一直走到SCM取决于你的开发程序有多复杂。”他称SCM有点奢侈,因为它的复杂性要求用户首先适应版本控制。“SCM可能更适合大型公司和团队,尤其是那些更依赖软件的公司,”Jenkins说。“但对于一些较小的公司来说,版本控制可能是他们所需要的全部。”
瑟琳娜软件公司的帕克也认为,公司可能需要SCM,但他补充说,他们可能会进一步发展到软件控制管理。推动这些决策的是组织的复杂性,他说这包括应用程序的规模、所涉及的IT团队的规模、项目的关键性和系统的容错需求。注意到版本控制是这个以软件控制管理结束的渐进层次结构中真正的第一个层次,Parker解释说版本控制适用于单个应用程序,而SCM是系统范围的,软件控制管理超越SCM。
让它聪明
版本控制的下一步是什么?最终用户希望版本控制更智能,更容易告诉他们该做什么,jenkins说。“区别在于你可以在版本控制之上添加多少层。这就是GUI(图形用户界面)。”
但是Jenkins认为现在驱动版本控制的是更复杂的过程的简化,从幕后的优势。“用户现在有了一种更简单的做事方式,而把更困难的事情留给版本控制。”
他指出,变更检测是版本控制的一个有用功能。Jenkins说,这个属性允许最终用户查看两个文件,并帮助他们理解更改中发生了什么。“改变是记住这些事情是如何联系起来的,以及它们对更大体系可能产生的影响。”
c . Kenna阿摩司ckamosjr@earthlink.net是《自动化世界》特约编辑。