版本控制系统研究

##################################################################
版本控制
http://baike.baidu.com/view/183136.htm
##################################################################

软件系统的版本号由3部分构成,即主版本号+次版本号+修改号。
主版本号1位,只有当系统在结构和功能上有重大突破改进后才发生变化;
次版本号有2位;
修改号8位,采用提交时的日期。
当系统进行任何修改后,包括数据库结构发生变化,修改号都要随之改变。例如:Ver3.31.19990317

基本概念:

合并
  合并是指将某分支上的更改联接到此主干或同为主干的另一个分支。
  当对同一文件的不同行进行两组更改时,合并这两组更改很容易,而合并操作也可正常进行。
  但对文件的同一行或几行进行更改时,将发生冲突,这就要求有人手动编辑该文件,然后才能将这些更改成功提交到源存储库。

冲突
  有时候,当您更新存储库中的文件时,可能会遇到冲突。 当两个或多个用户更改文件中的一些相同行时,将发生冲突。

Hook
  Hook 是被存储库事件触发的程序,例如创建新版本或修改无版本属性。
  Hook 中保留了足够的信息,可以告知该事件是什么、正被操作的目标是什么,以及触发此事件的人员的用户名是什么。

存储库
  Subversion 的核心为存储库。 它是一个存储和共享数据的集中式系统。 存储库以一组树和分支的形式(即目录和文件的层次结构)存储信息。 任何数量的客户端都可以连接到存储库中,并对这些文件进行读取和写入。

########################################################
Mercurial(Hg)分布式版本控制的快速入门
http://www.cnblogs.com/xjimmyshcn/archive/2011/06/17/2083437.html
########################################################
mercurial:善变的, 活泼的, 水银的, [天文]水星的 Mercurial表示墨丘利,墨丘利是罗马神话中为众神传递信息的使者

常见的版本控制软件如svn server(svn),vss administrator(vss),都是需要一个中心服务器的, 但分布式版本控制软件如Mercurial则不需要。
当然,在实际使用中,一般还是要人为的指定一个中心库以作为发布服务器。
分布式最大的好处就是可以离线工作,Mercurial可以直接本地创建资源库,先在本地做提交。待能连中心服务器或者需要时,再提交到中心服务器。

Mercurial的命令行工具是Hg
[作者注释: 以下操作在CentOS 5.6 i386下进行,Mercurial 版本为1.8.4。 Windows下TortoiseHg 版本为2.0.3。]

#################################################################
Mercurial与TortoiseHg使用入门教程
http://www.cnblogs.com/meetrice/archive/2010/07/12/1775707.html
#################################################################

分布式版本管理工具当中,Git和Mercurial(意思为水银的,于是经常缩写为Hg)是最为流行的工具。

大名鼎鼎的Linux就用Git作源码管理, 而Python和Firefox则采用Hg(你可以在这找到一堆使用Hg的项目)。

##################################################################
关于版本控制软件
http://www.cnblogs.com/coderzh/archive/2010/09/29/version-control.html
##################################################################
CVS SVN VSS 使用对比

一、Subversion包含绝大部分CVS功能

二、全局性的版本编号

三、目录的版本控制

四、原子性提交

五、支持变更集的概念 Subversion 将版本管理从单纯的、单个的文件修改的层次通过逻辑上的抽象,上升到更便于理解和交流的开发活动的层次。

六、差异化的二进制文件处理 与CVS 不同,Subversion 采用统一的二进制差异算法(binary differencing algorithm),即对文本文件和二进制文件采用相同的差异比较算法,并以相同的方式在版本库中进行存储:每次提交后版本库中只存储相对于先前版本的 差异,从而可以节省大量的存储空间。

该二进制差异算法不仅应用在版本的存储上,更为重要的是,Subversion 对二进制文件与文本文件一视同仁,当客户端需要获取新的版本时(如执行svn update),在网络上只有版本的差异被传输,从而大大减少对网络带宽的消耗。

七、 双向的差异化-压缩网络传输 Subversion 在客户端获取差异的秘密在于 — Subversion 在客户端的工作拷贝中隐含了每个文件的一个"只读的、干净的"副本(该副本隐藏在隐含目录.svn 里,通常不可见,该副本还有更多的妙用,参见"十二、更多的本地/离线操作"),通过比较用户在客户端的修改和该隐含的副本,Subversion 获取需要真正传送到服务器的差异,并对差异进行压缩后才进行网络传输。

八、高效、快捷创建分支和基线 由于Subversion 的全局版本号特性,Subversion 中分支或基线的创建过程,或Subversion中的"拷贝"过程,真正的操作是在版本库中创建一个到某一全局版本号的指针(pointer),不再需要 针对众多的单个文件依次执行操作。因此,该操作的成本为一个很小的常数,与项目大小,版本库大小,文件数目的多少无关;并且,分支或基线的建立不需要进行 版本的冗余存储,新建立的分支或基线基本不占用版本库空间,分支的后续存储空间的开销也只与修改的大小有关。

九、集成Apache Web Server,提供更多的特性 Subversion 通过与Apache Web Server 的集成,可以提供基于http/https 协议的版本库访问机制,从而支持Subversion 跨越防火墙的安全访问。除此以外,Subversion 还可以利用更多的Apache 特性,包括但不限于:Apache 丰富的用户认证机制(包括通过LDAP服务器如Windows Active Directory 服务器的用户认证),基于目录路径的精细粒度的访问控制,对传输的网络流量进行压缩/解压缩,浏览版本库目录结构等等。

十、支持WebDAV WebDAV(Web-based Distributed Authoring and Versioning)是一种基于 HTTP 1.1 协议的通信协议.它扩展了HTTP 1.1,在GET、POST、HEAD 等几个HTTP 标准方法以外添加了一些新的方法,使应用程序可直接对Web Server 直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

Subversion 通过与Apache Web Server 的集成,支持WebDAV 协议,使得业务用户(business users)或非技术用户在不安装任何版本管理客户端的情况下轻松访问Subversion 版本库,不改变业务用户已有使用习惯,支持分布的业务用户对文档的评审、修改并实现版本控制,真正将软件开发的生命周期从开发/技术团队扩展到项目的全部 干系人(stakeholder),避免通过电子邮件传递文档的混乱与无序、通过Windows 操作系统共享造成的安全漏洞、病毒攻击、历史版本被覆盖或丢失、审计困难等诸多典型问题。

十一、更好的冲突标识与处理

十二、 更多的本地/离线操作

十三、 对符号链接进行版本管理

十四、 元数据管理

Subversion 元数据的目的是提供附加的信息以满足流程或过程自动化的需要,以增强Subversion 的管理能力和自动化程度。 Subversion 自身就通过"属性"来存储一些特殊的信息。 一个使用Subversion 元数据的例子:  可以在一些批处理的脚本程序或Subversion的钩子程序(hooks)中创建、访问、修改"属性"元数据来满足流程自动化的要求。

##################################################################
软件开发过程自动化(041206)
http://wenku.baidu.com/view/38e89220192e45361066f5d7.html
##################################################################

In Rational suite
Requirement management      -> RequisitePro
Change Management        -> ClearQuest
Modeling & Code Generation   -> Rose Professional
Testing                -> TestManager
Configuration Management     -> ClearCase

 

posted @ 2012-01-12 11:43  万法自然~  阅读(253)  评论(0编辑  收藏  举报