在Ubuntu上搭建Subversion服务器

Michael 一口气写了 4 篇文章来介绍怎样建立 Subversion 服务器,深入浅出,很适合新手参照。我这篇文章盗用了他的思路,简单说明一下怎样在 Ubuntu 上搭建 Subversion 服务器。Subversion 是一款非常好的开源版本控制系统,目前最新版本 1.4.4,新增版本库镜像工具 svnsync 和对 working copy 性能的改进,另外新版也开始支持 BerkeleyDB 4.4。在介绍前必须先搞清楚两个概念,一个是 repository (版本库,以下简称 repo), 一个是 working copy (工作拷贝,以下简称 wc),前者是项目所在的地方,后者是你做修改的地方。如果你对版本控制这个概念不太了解的话,Michael 简单解释了一下。

比如我有一个项目,有几百个文件,包括项目的相关文档,图表,和一些视频音频文件,它们都被放在电脑的一个文件夹内。随着项目的发展,文件夹内的会增加新的文档图表等文件,而老的文件也会被修改,同时也许会有一些文件会被删除。在版本控制系统下,每一次对该项目文件夹下的改动,都会被记录,如果哪个文件被删错了,或是想把文档恢复到以前的版本,可以轻而易举的达到。更了不起的是,如果该项目被一个团队来执行,该团队的每一个成员都可以对项目内的文件进行管理和同步,这样就可以保持大家永远 on the same page。

举例说明,只需 4 步在 Ubuntu 上搭建 Subversion 服务器。

一、搭建 Subversion 服务器

1、首先需要安装 subversion 这个软件:
sudo apt-get install subversion

2、在 /home/nicky 下建立一个 repo,名称为 testproject:
svnadmin create /home/nicky/testproject

3、然后把 /fun/theme 目录下的内容导入到这个 repo 中:
svn import -m "" /fun/theme file:///home/nicky/testproject

4、最后给这个 repo 建立一个 svn 自带的 svnserve:
svnserve -d -r /home/nicky/testprojec

另外:如果需要设定用户的验证和相应的权限,请看这里。

二、使用 Subversion

1、你可以使用下面的命令来获得一个 wc,如把它取名为 projecout。

svn checkout svn://127.0.0.1/ projecout
或者简写为:
svn co svn://127.0.0.1/ projecout

2、如果需要将修改从 wc 中发送到 repo。

先到 wc 所在目录,然后使用下面的命令将修改发送到 repo:
svn commit -m "note"

三、常用命令:

取出指定版本,如取出版本 2:
svn checkout --revision 2 svn://....

显示提交日志信息:
svn log

显示库中的最新信息:
svn log --revision HEAD

另外在 Linux 上还有一个基于 Qt 的图形化的辅助工具 eSvn。
sudo apt-get install esvn