标签归档:项目管理

安装图形化svn软件 RabbitVCS

1. Go to http://wiki.rabbitvcs.org/wiki/download and click on the PPA link
2. Add “deb http://ppa.launchpad.net/rabbitvcs/ppa/ubuntu karmic main” to
/etc/apt/sources.list as requested
3. sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 34EF4A35
4. sudo apt-get update
5. sudo apt-get install rabbitvcs-cli rabbitvcs-core rabbitvcs-gedit rabbitvcs-nautilus rabbitvcs-thunar thunarx-python

版本管理器的发展史

酷壳 – CoolShell.cn发表于2010-11-17 08:50:48

以前本站发布过编程语言进化Windows的达尔文进化图,今天在网上看到版本管理器的进化图,转过来,源文链接如下:

http://codicesoftware.blogspot.com/2010/11/version-control-timeline.html (墙)

这张图上分成了四个时期:

史前时期:1982年的RCS。现在你可能还能在Unix的发布包中找到它。

古典时期:1990年的CVS(经典的SCM管理器,可惜不能track目录和文件名的改变,今天这个东西已经过时了),1985年的PVCS,1992年的clearcase(价格贵,功能复杂,当然,今天也有很多公司在用),微软的VSS(Welcome to Hell),90年代中期的Perforce(P4,这个工具今天都还在被广泛地使用,尤其是那些中等大小却有着大量开发团队的公司,现在是Google内部最大的代码管理器)。

中世纪时期:SVN(Linus很不喜欢SVN,2006年引入了Git),AccuRev(强力支持branch和merge,其扮演了一个很重要角色帮助社区脱离clearcase和CVS),

文艺复兴时期:BitKeeper——Sun的内部管理工具,Linux的内核代码2002年也用这个工具,其实,很多开源工程都在用这个工具,2005年这个工具的东家BitMover对大家对BitKeeper逆向工程很不满,于是停止支持开源,于是出现了Git。

Git的第一个版本是Linux之父Linus Torvalds亲手操刀设计和实现的(居说只有了一个周末),Linus不仅仅给出一个原始设计(简单的、干净的、天才的),同时,他也用自己那独一无二的风格催生了这个项目(请参看: http://codicesoftware.blogspot.com/2007/05/linus-torvalds-on-git-and-scm.html 还是被墙)。

在Linus介绍Git的著名的演讲中,他强烈地批评(好吧,应该算是侮辱)了CVS,SVN,和Perforce:“Subversion是史上最毫无意义的项目,从项目开始就是这样了”,“如果你喜欢CVS,那么你现在应该在某个精神病研究中心或是别的地方”,“别在用Preforce了,它是十分糟糕和可悲的,这绝对绝对是真的”。无论是反对还是喜欢,Linus的确是改变了历史——中世纪已经过去了,现在的世界由分布式系统主宰,以及消除branch和merge的恐惧。

Git 基于 DAG 结构 (Directed Acyclic Graph),其运行起来相当的快。在Git发布后的来年,世界上所有的大型的开源项目全部从Subversion迁移到了Git上,www.github.com真是很大,这可能是这具星球上最强大最牛最酷的SCM系统了。Git可能并不是最简单的,但它一定会是未来十年的主流。(有空读读这本书——Git Internals

Mercurial (Hg) 第一次出现在2005年4月,也是因为BitKeeper不免费了。Hg可以和Git在一起使用,见:http://mercurial.selenic.com/wiki/HgGit。但是Hg和Git在设计上不一样,他们对提交/变更的概念是一样的,只不过Git用tree来实现,而Hg则是用扁平的文件和目录来实现(revlog),设计细节可参看:http://mercurial.selenic.com/wiki/Designhttp://mercurial.selenic.com/wiki/DeveloperInfo

Darcs (Darcs Advanced Revision Control System)是另一个让你摆脱Subversion和CVS的工具,2002年开始,今年是2.5版。它的优势是性能,以及他与众不同的历史版本管理——管理patches而不是snapshot(提交/修改),当然,这样一来,历史改变看上去很不好懂。

Bazaar (bzr) 是另一个开源的 DVCS,它试图给SCM的世界里带来一些新的东西。其由Canonical开发(Ubuntu的那个公司),在2008年成为GNU。

Plastic在2006年出现,强力地支持branch和merge,其还提供了强大的图示,包括3D的版本树,Plastic主要是为了让中等开发团队使用,介于大型的团队(ClearCase)和小型的团队(Subversion)之间。

Team Foundation Server (TFS),微软的新一代SCM工具,主要是为了VSS的失败负责,但是他还不是版本管理上还是很强,只不过,他集成了一大堆各种各样的工具,比如:issue tracking,test management等。

(全文完)

相关文章

【转】Subversion安装配置指南

原文地址:http://blog.csdn.net/sinboy/archive/2009/03/18/4000524.aspx

Subversion是一个非常优秀的源代码管理控制系统,它的支持独立启动使用和结合Apache使用两种服务方式。
一、安装Subversion
1.从Subversion主页 下载最新版本的安装程序
2.如果是Windows平台,直接运行Exe的安装程序即可
3.如果是一般的Linux平台:
1)执行tar -zxvf subversion.xxx.tar.gz进行解压
2)执行cd subversion.xxx切换到解压后的目录
3)执行./configure –prefix=/opt/subversion进行配置设定,并指明安装目录
4)执行make进行编译
5)执行make install 进行安装
4.如果是Fedora Linux,可以直接执行yum install subversion进行自动安装(Fedora7以上的版本已自带
5.如果是Ubuntu Linux,可以直接执行sudo apt-get install subversion进行自动安装
二、安装Apache
1.从Apache主页 下载最新版本的安装程序
2.如果是Windows平台,直接运行安装程序
3.如果是一般的Linux平台:
1)执行tar -zxvf httpd.xxx.tar.gz进行解压
2)执行cd httpd.xxx切换到解压后的目录
3)执行./configure –prefix=/opt/httpd进行配置设定,并指明安装目录
4)执行make进行编译
5)执行make install 进行安装
4.如果是Fedora Linux,可以直接执行yum install httpd进行自动安装(Fedora7以上的版本已自带
5.如果是Ubuntu Linux,可以直接执行sudo apt-get install apache2进行自动安装
三、创建数据仓库
1.执行mkdir /var/gftech/subversion/repos创建数据仓库的目录
2.执行svnadmin create /var/gftech/subversion/repos创建数据仓库,将自动生成几个文件和目录:
/conf
/db
/hooks
四、独立启动方式
独立启动方式是做为一个单独的服务程序,默认情况下通过本地端口3690来对外提供服务。
启动步骤:
1.执行svnserve -d -r /var/gftech/subversion/repos以Daemon方式运行,默认情况下匿名访问
2.在Fedora中,可以用chkconfig把Subversion做一个服务程序,随系统自动启动:
1)以root帐号登录
2)执行cd /etc/rc.d/init.d切换到服务程序所在目录
3)执行vi svnd进行文件编辑
4)添加下面的内容到svnd文件当中:
5)保存退出
6)执行chmod a+x svnd 使之可执行
7)执行chkconfig –add svnd添加该服务到系统当中
8)执行chkconfig –list svnd查看该服务
9)执行service svnd start可以启动该服务
10)执行service svnd stop可以停止该服务
在进行源代码管理时,为了安全起见,需要对用户的权限进行控制,主要通过三个配置文件来实 现,svnservice.conf、passwd、authz,第一个文件指明是否需要进行访问控制以及第二、三个文件的位置,第二个文件存放用户帐号 信息,第三个文件存放用户的访问权限,具体配置如下:
1.打开svnserve.conf文件,把auth-access=write前面的#号去掉,使受权用户可以进行写操作
2.把password-db=passwd前面的#号去掉,表明密码文件为当前目录下的passwd文件
3.把auth-db=authz前面的#号去掉,表明用户访问权限文件为当前目录下的authz文件
4.打开passwd文件,在末行添加需要的帐号,比如:test=123456
5.打开authz文件,在[/]一行下面添加test=rw,表明数据仓库的根目录下的所有目录,test都可进行读写操作
6.再添加一行*=r,表明其他帐号可以进行只读操作
7.在该文件中还可以为用户分组,添加到[groups]下面,比如:admin=sinboy,others=u1,u2
8.还可以对根目录下的子目录进行具体的权限控制,只需要添加相应目录,比如:
[/web]
u1=rw
*=
表明web子目录只允许u1帐号进行读写操作,禁止其他帐号访问
它的缺点是:
1.对外提供服务时,有可能受到防火墙的阻隔,造成服务无法访问
2.并且它的密码文件是明文显示,没有进行MD5加密,存在安全隐患
3.只能启动一个数据仓库,如果想要创建多个数据仓库,必须启动多个svnserve服务进程
五、结合Apache方式
结合Apache使用的方式,克服了svnserve方式的缺点,用户可以直接通过浏览器浏览源代码,还可以对浏览器访问进行SSL加密控制,更好的提高安全性
1.Apache本身不支持SVN,需要先安装mod_dav_svn模块
2.在Fedora下,执行yum install mod_dav_svn进行自动安装
3.确保/etc/httpd/moudles目录下有mod_dav_svn.so和mod_authz_svn.so
4.打开/etc/httpd/conf/httpd.conf文件,在LoadModule dav_module modules/mod_dav.so
一行下面添加下面两行内容:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

5.再添加如下内容:
<Location /svn>
DAV svn
SVNPath /var/gftech/subversion/repos

AuthzSVNAccessFile /var/gftech/subversion/repos/conf/access.auth
Satisfy Any
Require valid-user
AuthType Basic
AuthName &quot
;Subversion repositories”


AuthUserFile  /var/gftech/subversion/repos/conf/users.auth
Require valid-user
</Location>
6.切换到/var/gftech/subversion/repos/conf目录下
7.执行htpasswd -cb users.auth test 123456创建帐号文件
8.再次添加用户,去掉参数c即可:htpasswd -b users.auth test2 123456
9.执行service httpd restart启动Apache
10.在浏览器中输入http://host/svn打开SVN仓库,输入用户名密码进行访问
六、SVN客户端
推荐使用TortoiseSVN
七、其他文章推荐