前言

最近,一直学习开源项目的代码,难免会碰到各种版本管理器,作为一名在校大学生,学校的课程完全没提及到,靠着自己的摸索,走了不少弯路,写个列表,望对大家有所帮助.顺便提一下,这里只说客户端,至于服务端,自行根据提供的资料学习 

CVS

这里eclipse自带就有,也有一段历史,现在的开源项目很少用的,这里就不做介绍了. 

SVN

Eclipse插件:Subclipse:

下载

Eclipse update site URL:

Zipped downloads:

svn是作为cvs的接班人出现,这也是为什么使用cvs的开源项目越来越少的原因,看了一下介绍,安全性得到了显著的提升,还有

相对于的cvs采用了分支管理系统.

特性

  • 统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。
  • 提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
  • 重命名、复制、删除文件等动作都保存在版本历史记录当中。
  • 对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)
  • 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
  • 分支的开销非常小。
  • 优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量。
  • 支持元数据(Metadata)管理。每个目录或文件都可以定义属性(Property),它是一些隐藏的键值对,用户可以自定义属性内容,而且属性和文件内容一样在版本控制范围内。
  • 支持和两种资料库格式。 
 

Mercurial

Eclipse插件:MercurialEclipse:

下载

Eclipse update site URL:

Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强.

特性

Mercurial采用散列算法来识别修订版本。Mercurial使用一个基于HTTP的协议来接入网络中的版本库,旨在减少往返的提交、连接数和数据传输。Mercurial也可以工作在ssh环境下,其协议和基于HTTP的协议非常相似。

这个是通用官方使用教程

 

 

Git

因为,前一段时间想跑去下载android源码库,就碰到这么一个工具.可惜…android源码库的官网还没修护好…

Eclipse插件:Egit:

下载:

Eclipse update site URL:

以下是来至于维基百科的介绍:

Git --- The stupid content tracker, 傻瓜内容跟踪器。Linux是这样给我们介绍 Git 的。

Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 , 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。

实际上内核开发团队决定开始开发和使用 Git 来作为内核开发的版本控制系统的时候,世界开源社群的反对声音不少,最大的理由是 Git 太艰涩难懂,从 Git 的内部工作机制来说,的确是这样。但是随着开发的深入,Git 的正常使用都由一些友好的脚本命令来执行,使 Git 变得非常好用,即使是用来管理我们自己的开发项目,Git 都是一个友好,有力的工具。现在,越来越多的著名项目采用 Git 来管理项目开发,例如:, 等。

作为开源自由原教旨主义项目,Git 没有对版本库的浏览和修改做任何的权限限制,通过其他工具也可以达到有限的权限控制,比如:gitosis, CodeBeamer MR。原本 Git的使用范围只适用于 Linux / Unix 平台,但逐步并成熟了在 Windows 平台下的使用,主要归功于与环境与这样易用的 GUI 工具。其实 Git 的源代码中已经加入了对 Cygwin 与 MinGW 编译环境的支持并被逐步完善,对于 Windows 使用者是个福音。

这个是通用教程,当然,我们用eclipse插件就不要这么麻烦了…

 

 

以上的svn,mercurial,git, codeGoogle 都支持,可以选择喜欢自己使用的插件创建自己的项目库 

Eclispse在线插件安装

Help 下

 

把下载用网址贴进去就行