本节和大家一起学习一下SVN简易使用手册,随着SVN的快速发展,版本更新了多个,用途也越来越广,本节就介绍一下SVN如何使用,欢迎大家一起来学习SVN简易使用手册。
Subversion是一个免费的开源的版本管理系统,它是作为CVS(ConcurrentVersionsSystem)的取代品出现的。本文简单介绍了Subversion在Fedora上的安装过程及其基本概念和使用方法。您可以到O'Reilly出版的开源书籍VersionControlwithSubversion的主页在线阅读(中、英文版本都有),以获取更多信息。
1.在Fedora上安装Subversion
首先看一下SVN简易使用手册中介绍如何在Fedora上安装Subversion。
[aaronwong@localhost~]$sudoyum-yinstallsubversion
[aaronwong@localhost~]$rpm-qlsubversion//上面的命令可查询subversion软件包在系统上所安装的文件列表
[aaronwong@localhost~]$sudoyum-yinstallmod_dav_svn//mod_dav_svn不是必须安装的,它是ApacheHTTPServer的一个插件,你本地仓库(repository)的文件必须通过它才能在网络上与别人共享。//subversion的组件列表点此查看。
[aaronwong@localhost~]$svn--version
svn,版本1.4.3(r23084)
编译于Mar232007,09:29:55
版权所有(C)2000-2007CollabNet。
Subversion是开放源代码软件,请参阅http://subversion.tigris.org/此产品包含由CollabNet(http://www.Collab.Net/)开发的软件。
可使用以下的仓库存取(RA)模块:
*ra_dav:通过WebDAV(DeltaV)协议访问仓库的模块。
-处理“http”方案
-处理“https”方案
*ra_svn:使用svn网络协议访问仓库的模块。
-处理“svn”方案
*ra_local:访问本地磁盘的仓库模块。
-处理“file”方案
2.使用Subversion管理本地project
SVN简易使用手册再来讲解一下如何使用Subversion管理本地project。作为程序开发人员,我们没有必要了解Subversion的所有特性的方方面面,我们的目的是使用它来对我们的project进行方便的简单的版本管理,因此,强烈推荐阅读SubversionQuick-StartGuid和BasicUsage。以下是笔者参照上述Guide进行一个简单的本地project的版本管理的示例。假定工程名为hello。
(1)建立本地工程hello的subversion仓库
Subversion把工程的各个版本的数据集中放在一个仓库(repository)中。假定我们要建立一个本地工程,叫做hello,为了使用subversion对它进行版本管理,首先要为该工程建立一个仓库。
[aaronwong@localhost~]$svnadmincreate.subversion/repos/hello//subversion安装后会生成一个~/.subversion目录,这里,我们将工程hello的数据仓库建立在~/.subversion/repos/hello目录。
[aaronwong@localhost~]$ls-p.subversion/repos/hello/
conf/dav/db/formathooks/locks/README.txt
(2)按照subversion的要求组建本地工程hello的工作目录
假定工程hello的顶层目录为~/projects/hello(这里~代表/home/aaronwong/),则应如下组建工程的工作目录:
~/projects/hello/branches
~/projects/hello/tags
~/projects/hello/trunk/
hello.c
//trunk目录是实际上的工程顶层目录,工程中的所有文件和文件夹都在该目录下组织。
[aaronwong@localhost~]$cdprojects/hello/
[aaronwong@localhosthello]$ls-p
branches/tags/trunk/
[aaronwong@localhosthello]$cattrunk/hello.c
//Thisisaoriginalversion.
#include<stdio.h>
intmain()
{printf("Helloworld!\n");}
(3)将本地工程hello导入本地的Subversion的工程仓库
由于是首次导入,因此要加信息-m"initialimport"。
[aaronwong@localhosttrunk]$svnimport~/projects/hello/file:///home/aaronwong/.subversion/repos/hello/-m"initialimprot"
新增/home/aaronwong/projects/hello/trunk
新增/home/aaronwong/projects/hello/trunk/hello.c
新增/home/aaronwong/projects/hello/branches
新增/home/aaronwong/projects/hello/tags
提交后的版本为1。
注意,完成导入后,原目录~/projects/hello并不转换为“工作副本(workingcopy)”,而且该项目已经转由该仓库接管,即该仓库中已经包含了首次导入的工程的所有信息,与源目录~/project/hello再无任何关系,我们完全可以删除这一目录而不必担心丢失工程项目数据。注意,如果源目录并不是一个“工作副本”,那么就无法用svn进行管理,在其中所作的任何变动都无法提交到仓库。
要用subversion对工程进行版本管理,那么工程项目的开发必须在一个“工作副本”中进行,即首先要从仓库获取一个“工作副本”。请期待下节关于SVN简易使用手册介绍。
【编辑推荐】