Linux下安装配置SVN独立服务器svnserve
<p>svn服务器有两种运行方式:独立服务器svnserve和借助apache作为apache的一个模块,以webdav/deltav协议通讯。<br>svn存储版本数据有两种方式:BDB和FSFS。BDB方式在服务器中断时,可能锁住数据。FSFS方式更安全些,兼容性好。<br><strong>一.安装subversion</strong></p><pre class="brush:bash;toolbar:false"># wget http://subversion.tigris.org/downloads/subversion-1.6.13.tar.gz
# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.13.tar.gz
# tar -xzvf subversion-1.6.13.tar.gz -C ../software/
# tar -xzvf subversion-deps-1.6.13.tar.gz -C ../software/
# cd ../software/subversion-1.6.13/
# ./configure --prefix=/usr/local/subversion-1.6.13
# make clean
# make
# make install
# ./svnserve --version
svnserve, version 1.6.13 (r1002816)
compiled Jun 1 2011, 10:19:12
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
Cyrus SASL authentication is available.</pre><p>输出以上信息说明安装成功。<br><strong>二.建立库文件</strong><br>
1.创建文件夹</p><pre class="brush:bash;toolbar:false"># mkdir -p /www/svn/repository</pre><p>2.创建版本库并指定数据存储模式为FSFS</p><pre class="brush:bash;toolbar:false"># ./svnadmin create --fs-type fsfs /www/svn/repository/
# ls /www/svn/repository/
conf db format hooks locks README.txt</pre><p>3.创建项目临时目录</p><pre class="brush:bash;toolbar:false"># mkdir -p /www/svn/tmp/{trunk,tags,branches}</pre><p>4.复制项目文件到trunk目录下</p><pre class="brush:bash;toolbar:false"># cp -r nginx /www/svn/tmp/trunk/</pre><p>5.导入所需管理的项目到版本库repository中</p><pre class="brush:bash;toolbar:false"># ./svn import /www/svn/tmp/ file:///www/svn/repository/ -m "first import"
-m 标识操作的注释
/ww/svn/tmp/trunk/nginx 项目文件的位置
file:///www/svn/repository 创建的软件仓库
Adding /www/svn/tmp/trunk/nginx/client_body_temp
Adding /www/svn/tmp/trunk/nginx/uwsgi_temp
Adding /www/svn/tmp/trunk/nginx/logs
Adding /www/svn/tmp/trunk/nginx/logs/access.log
Adding /www/svn/tmp/trunk/nginx/logs/error.log
Adding /www/svn/tmp/trunk/nginx/html
Adding /www/svn/tmp/trunk/nginx/html/50x.html
Adding /www/svn/tmp/trunk/nginx/html/index.html
Adding /www/svn/tmp/trunk/nginx/fastcgi_temp
Adding /www/svn/tmp/trunk/nginx/conf
Adding /www/svn/tmp/trunk/nginx/conf/uwsgi_params
Adding /www/svn/tmp/trunk/nginx/conf/fastcgi_params
Adding /www/svn/tmp/trunk/nginx/conf/uwsgi_params.default
Adding /www/svn/tmp/trunk/nginx/conf/fastcgi.conf
Adding /www/svn/tmp/trunk/nginx/conf/fastcgi_params.default
Adding /www/svn/tmp/trunk/nginx/conf/fastcgi.conf.default
Adding /www/svn/tmp/trunk/nginx/conf/nginx.conf
Adding /www/svn/tmp/trunk/nginx/conf/scgi_params
Adding /www/svn/tmp/trunk/nginx/conf/win-utf
Adding /www/svn/tmp/trunk/nginx/conf/nginx.conf.default
Adding /www/svn/tmp/trunk/nginx/conf/mime.types
Adding /www/svn/tmp/trunk/nginx/conf/scgi_params.default
Adding /www/svn/tmp/trunk/nginx/conf/mime.types.default
Adding /www/svn/tmp/trunk/nginx/conf/koi-win
Adding /www/svn/tmp/trunk/nginx/conf/koi-utf
Adding /www/svn/tmp/trunk/nginx/proxy_temp
Adding /www/svn/tmp/trunk/nginx/scgi_temp
Adding /www/svn/tmp/trunk/nginx/sbin
Adding (bin) /www/svn/tmp/trunk/nginx/sbin/nginx
Committed revision 1.</pre><p>6.检查是否导入成功</p><pre class="brush:bash;toolbar:false"># ./svn list --verbose file:///www/svn/repository/
1 root Jun 01 10:48 ./
1 root Jun 01 10:48 client_body_temp/
1 root Jun 01 10:48 conf/
1 root Jun 01 10:48 fastcgi_temp/
1 root Jun 01 10:48 html/
1 root Jun 01 10:48 logs/
1 root Jun 01 10:48 proxy_temp/
1 root Jun 01 10:48 sbin/
1 root Jun 01 10:48 scgi_temp/
1 root Jun 01 10:48 uwsgi_temp/</pre><p>7.修改版本库文件的权限</p><pre class="brush:bash;toolbar:false"># chmod 770 repository
# chmod -R g+w repository</pre><p><strong>三.用户管理</strong><br>
1.修改版本库的配置文件</p><pre class="brush:bash;toolbar:false"># vim /www/svn/repository/conf/svnserve.conf
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = repository
</pre><p>2.修改允许访问版本库的用户文件</p><pre class="brush:bash;toolbar:false"># vim /www/svn/repository/conf/passwd</pre><p>文件格式如下所示:</p><pre class="brush:bash;toolbar:false"> //不可省略
username1=password1
username2=password2 //每个用户一行</pre><p>新建用户列表</p><pre class="brush:bash;toolbar:false">xuhh = xuhh@ttlsa.com</pre><p>3.修改用户访问版本库的权限</p><pre class="brush:bash;toolbar:false"># vim /www/svn/repository/conf/authz</pre><p>注意:权限配置文件中出现的用户名必须在passwd文件中有定义过,对权限配置文件authz的修改会立即生效。<br>
文件格式如下所示:<br>
用户组格式:</p><pre class="brush:bash;toolbar:false">
user_group_name=username1,username2 //用户间以逗号分割</pre><p>版本库目录格式:</p><pre class="brush:bash;toolbar:false"> //版本库:/项目/目录
@user_group_name=permissions //用户组名=权限
username=permissions //用户名=权限</pre><p>[]可以有多种定义 /表示对全部的版本库设置权限,repos1:/表示对repos1设置权限,repos2:/www表示对repos2中的www项目设置权限,repos2:/www/example.com表示对repos2中的www项目的example.com目录设置权限。<br>
可以用*来表示所有用户。<br>
权限可以设置为w,r,wr和空,空表示没有任何权限。<br>
新建用户访问版本库权限</p><pre class="brush:bash;toolbar:false">
developer = xuhh
[/]
@developer = rw</pre><p>四.启动和停止subversion<br>
1.启动svn</p><pre class="brush:bash;toolbar:false"># ./svnserve -d --listen-port 9999 -r /www/svn/repository --log-file /usr/local/subversion-1.6.13/logs/svn.log --pid-file /usr/local/subversion-1.6.13/logs/svn.pid</pre><p>-d 以daemon方式运行<br>
--listen-port 监听端口号<br>
-r 指定目录<br>
--log-file 指定日志文件<br>
--pid-file 指定pid文件<br>
2.停止svn</p><pre class="brush:bash;toolbar:false"># kill -9 `cat /usr/local/subversion-1.6.13/logs/svn.pid`</pre><p>五.客户端访问<br>
1.Windows下安装TortoiseSVN<br>
2.Linux下</p><pre class="brush:bash;toolbar:false"># svn checkout svn://192.168.50.10:9999</pre>
頁:
[1]