Ubuntu svn配置 一 安装
Subversion 已经包含在 main 仓库中。所以,要安装 Subversion,执行:
$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn
二 目录,权限设置
许多位置都可以放置 Subversion 文件仓库,其中两个最常用的是:/usr/local/svn 以及 /home/svn。
在这里Subversion 文件仓库放在 /home/svn,并且项目名称是简单的“myproject”。
创建一个名为“Subversion”的组来拥有文件仓库所在的目录,将自己和“www-data”(Apache 用户)加入
组成员中,执行:
$ sudo addgroup subversion
$ sudo usermod -G subversion -a www-data
再执行:
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo chown -R root:subversion myproject
赋予组成员对所有新加入文件仓库的文件拥有相应的权限:
$ sudo chmod -R g+rws myproject
除了权限以外,用户及其组如果不对,则仍然会遇到上述问题,可以再次运行命令:
$ sudo chown -R root:subversion myproject
三 创建文件仓库
下面的命令用于创建 SVN 文件仓库:
$ sudo svnadmin create /home/svn/myproject
四 用户设置
修改 /home/svn/myproject/conf/svnserve.conf 来配置其访问控制。
取消下面的注释符号来设置授权机制:
# [general]
# password-db = passwd
现在,您可以在“passwd”文件中维护用户清单。编辑同一目录下“passwd”文件,添加新用户。语法如下:
username = password(注意行开始不要有多余空格)
五 Windows客户端
下载svn客户端,check out时的连接地址:
svn://192.168.1.100/home/svn/safesys
增加用户和组
vi /etc/group
subversion:x:1001:www-data,exp,mocci,musaglas
建立SVN目录
mkdir /home/mocci/svn
cd /home/mocci/svn
sudo mkdir myprojects
更改文件所属者
chown -R mocci:subversion myprojects
更改文件操作权限
chmod -R ug+rwxs myprojects
建立SVN数据仓库
svnadmin create /home/mocci/svn/myprojects
配置apache
设定dav_svn启动(注:情况不同,可以不用加载)
修改/etc/apache2/httpd.conf
LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
/etc/apache2/mods-available/dav_svn.conf
<Location /svn/myprojects>
DAV svn
SVNPath /home/mocci/svn/myprojects
AuthType Basic
AuthName "mux's myprojects"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
增加apache用户
htpasswd -c /etc/subversion/passwd mocci
输入密码
htpasswd -m /etc/subversion/passwd musaglas
输入密码
apache设置完成,重起apache
/etc/init.d/apache2 restart
下面设置CVS的用户权限
在myprojects/conf/svnserve.conf
把注释去掉
增加用户,更改passwd
mocci=******
musaglas=******
赋予权限,更改authz
[/]
*=r
[myprojects:/]
mocci=rw
musaglas=rw
配置完成!
下面测试一下。
Subversion社区建议为每一个项目建立一个项目根目录—项目的“顶级”目录—然后在根目录下建立三个子目录:trunk
,保存项目的开发主线;branches
,保存项目的各种开发分支;tags
,保存项目的标签,也就是创建后永远不会修改的分支(可能会删除)。
建立新文件夹
mkdir tmpdir
cd tmpdir
mkdir projectA
mkdir projectA/trunk
mkdir projectA/branches
mkdir projectA/tags
mkdir projectB
mkdir projectB/trunk
mkdir projectB/branches
mkdir projectB/tags
svn import -m "注释" . http:///svn/myprojects
如果执行成功则:
Adding projectA
…
Transmitting file data .........
Committed ....
也可以用命令,来查看导入的情况
svn list --verbose file:///svn/myprojects
1 mocci ..... projectA/
1 mocci ..... projectB/