使用svn进行多个版本库的linux教程如下:
如果当前有svnserve进程在运行,指令
killall svnserve
指定某目录为svn服务启动时所使用的根目录,指令
cd /data
mkdir svn
最后的路径为:/data/svn
接着创建多个svn版本库于/data/svn/目录下,指令
svnadmin create /data/svn/lesterleel
svnadmin create /data/svn/lesterlee2
最后的目录结构应为这样:
/data/svn
/data/svn/lesterlee1
/data/svn/lesterlee2
将/data/svn/lesterlee1/conf/目录下的authz、passwd、svnserve.con拷贝至/data/svn/目录下,此时svn根目录的结构应为:
/data/svn
/data/svn/lesterlee1
/data/svn/lesterlee2
/data/svn/authz
/data/svn/passwd
/data/svn/svnserve.conf
下一步,配置svnserve.conf,指令
加入以下内容:
保存后,至此,svnserve.conf配置完毕,接下来配置用户信息
配置信息如下:
保存后,至此,passwd配置完毕,接下来配置用户权限
配置的信息如下:
#用户组
#将用户lesterlee加入用户组grouplesterlee中
#读写权限
用户组读写权限
最后,启动svn服务即可,指令
注:后面的参数,–config-file=/data/svn/svnserve.conf是告诉svn服务,调用/data/svn目录下的svn配置文件,用来统一管理/data/svn目录下创建的子svn版本,统一使用配置文件中的用户信息、权限信息来管理各版本库。
注:
通常启动SVN服务,仅指定SVN版本库的根目录,如下:
svnserve -d -r /data/svn
然后在/data/svn下创建多个版本库:
cd /data/svn
svnadmin create lesterlee1
svnadmin create lesterlee2
再依次配置lesterlee1和lesterlee2等版本库下的conf/svnserve.conf、conf/passwd、conf/authz文件。
问题便来了,因为大多数的时候,同一个用户需要用相同的帐号和密码去访问不同的版本库,这时的权限配置就不好处理了,以前看其他人的解决方法是在svnserve.conf中指定passwd和authz的路径时用相对路径指到同一个文件。这是一个可行的方法,但新增版本库的时候,就得更改svnserve.conf文件,不方便。
仔细看svnserve的帮助信息,大家都会发现有一个--config-file参数,这个参数就是用来指定svnserve.conf路径的,说到这,问题已经明了,只要在启动SVN服务的时候,指定--config-file参数,只要指定了此参数,所有的权限都由参数指定的svnserve.conf控制,而每个版本库conf目录下的svnserve.conf的配置都会忽略掉。
svnserve -d -r /data/svn --config-file /data/svn/svnserve.conf