ubuntu下实用svnserve配置svn服务器(转)
1.安装subversion
sudo apt-get install subversion
2.建立一个文件夹作为版本库的根目录
mkdir /var/svnroot/
这个目录本身不是版本库,只是拿来装版本库的目录
3.进入这个目录,创建版本库
cd /var/svnroot/
svnadmin create project1
以后如果有多个项目,可以继续在/var/svnroot/下面create新的版本库
4.配置project1
cd /var/svnroot/project1/conf/
ls
将会看到以下文件 authz passwd svnserve.conf
首先编辑 svnserve.conf
vim svnserve.conf
其中 anon-access 表示 匿名用户的权限 auth-access 表示经过认证的用户的权限。去掉前面的#注释,顶格写。一般说来像这样就可以了:
anon-access = none
auth-access = write
然后看到下面有 password-db 这个配置项。 这个是配置使用的密码文件。 为了以后多个版本库同时运行,建议改这个文件到 /var/svnroot/下面。比如:
/var/svnroot/passwd
同理,authz-db这个也是,像这样:/var/svnroot/authz
然后有个东西叫做realm,这个貌似是连接svn服务器的时候的提示句子。。不过设置成project的名字肯定没错。比如 project1
其他的不管。保存退出。
5.移动authz和passwd到 /var/svnroot/下面。
刚刚说了,这个是为了以后多个版本库同时运行作准备,以便多个版本库用同一个密码配置文件。否则每个版本库都要单独配置用户和权限就麻烦了。
6.编辑 /var/svnroot/passwd
这个简单,像这样就可以了:
[users]
username=password
7.编辑 /var/svnroot/authz
[groups]下面的信息是定义用户组,方便对一个组的用户配置权限。 比如 group1=username1,username2。不过如果一个用户的话,配置成你的名字也无妨,例如:longbill=longbill
再往下面就是配置各个版本库的权限了。
[project1:/] #这句表示project1这个版本库的权限。如果配置所有版本库的权限就写 [/]
除此之外,还可以写[/project1]也表示project1这个版本库。
这句下面配置我们刚刚设置的用户组的权限。前面要加@符号。 例如: @longbill=rw
8.启动svnserve
sudo svnserve -d -r /var/svnroot/
-r 后面的参数是svnroot位置,而不是某个版本库的位置
要关闭svnserve可以直接用 kill 结束掉那个进程
9.测试。
在本地 svn co svn://yourhost.com/project1 --username longbill --password xxxxxx
如果看到 Checked out revision 0. 那么表示成功拉~~~
10.增加版本库
如果来了一个新的项目。可以在 /var/svnroot/下面 用 svnadmin create project2 来创建一个新的版本库。然后参考步骤4配置project2的svnserve.conf。 然后按照自己的需要配置 /var/svnroot/authz 。 重启svnserve进程就可以了。
11.添加自动启动svnserve脚本。 研究中....
更新:
#vim /etc/rc.d/rc.local
增加 svnserve -d -r /var/svnroot
保存后退出,重启即可看到自启动的效果。