现在最火的版本控制软件是什么? 当然是git。git大有取代svn之势,就像svn当前取代cvs一样。git提供了由svn转化为git的功能。而且转化出来的版本库还带有之前svn的更新日志!要知道对于一个开源作品来说fork可以方便的将源码备份到自己的账号所辖版本库中,而pull request功能方便将自己的代码更改提交给原作者,待原作者审核通过后,自己就为开源项目的发展贡献了一份绵薄之力。
一、
Git:
是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码分布式版本控制系统软件
,
用以有效、高速的处理从很小到非常大的项目版本管理。
提供代管软体库,并以其网路前端和工具加强功能知名。
GitHub代码托管网站(采用Git分布式版本控制系统软件)
已经成为开放源码开发者分享、讨论、开发程式码的最活跃场所,并且藉由Git 的功能允许开发者复制(clone) 源码库来进行开发,而无须就程式码修改的回送进行协调。
Git是一个分布式版本控制工具,很多有名的软件都使用Git来进行版本控制,与常用的版本控制工具CVS、SVN等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便,GitHub是流行的Git存取站点,可以托管各种Git库,开源项目可以通过GitHub免费托管,GitHub深受广大程序员的喜爱。
二、
SVN(subversion):
三、
CVS(concurrent version system):
它是一个
开放源代码
的项目,
是基于TCP/IP协议的版本控制工具,
是当前最流行的版本控制系统,目前绝大部分Open Source项目都使用它来做版本管理。
CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。
CVS版本控制系统是一种
GNU
软件包
,主要用于在多人
开发环境
下的源码的维护。
实际上CVS可以维护任意文档的开发和使用,例如共
享
文件
的编辑修改,而不仅仅局限于
程序设计
。CVS维护的
文件
类型可以是
文本
类型也可以是二进制类型
CVS采用客户机/服务器体系,代码、文档的各种版本都存储在服务器端,开发者首先从服务器上获得一份复制到本机,然后在此基础上进行开发。开发者可随时将新代码提交给服务器,也可以通过更新操作获得最新的代码,保持与其他开发者的一致。
CVS对于从个人开发者到大型、分布团队都是有用的。
个人开发者希望一个版
本控制系统的
安全网络
能够运行在他们的本地的一台
机器
上。然而,开发团队需要一个集中的
服务器
,所有的成员可以将
服务器
作为仓库来访问他们的代码。
Eclipse
内置CVS,
它提供CVS作为基础集成的一部分。
在Eclipse中访问CVS是一件相当轻松自如的事情,Eclipse按照自己的需要封装了CVS,你可以看到,和其他访问方式完全不同,
Eclipse是到现在为止最强大的CVS工作平台。
CVS资源库是被作为乐观锁模型来使用的。这就意味着,当您检出一个文件时,该文件在资源库没有被锁。访问CVS的其他人也可检出同一文件,并对该文件进行修改。在您将该文件重新保存到CVS资源库中时,您要对冲突进行管理。很多资源库使用的是悲观锁模型。在悲观锁模型中,当一个文件被检出时,该文件就被锁了起来。这就阻止其他人在该文件被检入之前更新该文件。Eclipse可与任何类型的资源库进行集成,而不管它使用的是哪种模型。CVS在冲突较少的环境中能高效工作。尽管冲突会不时发生,但正如我们所知的,Eclipse和CVS会帮助我们解决这些冲突。
CVS服务器上,一个源代码仓库被称为一个repository,一个server上通常可以运行多个repository,每个repository都是完全独立的,可以有不同的用户列表和访问规则。在一个repository之下,文件按照module组织,每一个module就相当于一个工程
CVSNT就是服务器端的软件
windows环境CVS client使用入门http://se.csai.cn/casepanel/200712291504281720.htm
http://blog.csdn.net/night_elf/article/details/2891341
在Windows下配置与使用CVSNT,与各种问题解决
四、
VSS(
Visual Source Safe
)
Git与CVS的区别
- 分支更快、更容易。
- 支持离线工作;本地提交可以稍后提交到服务器上。
- Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。
- Git 中的每个工作树都包含一个具有完整项目历史的仓库。
- 没有哪一个 Git 仓库会天生比其他仓库更重要。