Izhuceul 发表于 2018-10-23 10:28:48

SVN Server安装&配置

SVN SERVER配置
  引用:http://www.ha97.com/4467.html
  http://8474832.blog.51cto.com/8464832/1555531
  http://blog.sina.com.cn/s/blog_64d015c10100syjg.html
  http://blog.csdn.net/yuansicau/article/details/2845465
  SVN SERVER配置1
  一、安装svn:2
  二、 svn配置过程如下4
  三、Subversion使用钩子脚本实现自动更新7
  四、常见错误8

一、安装svn:
  1.先卸载老版本的svn
  如果rpm -e subversion 不能卸载的话,用以下命令:
  rpm -e --allmatches subversion
网页支持模块安装
  1)安装Apache Apr
  wget http://apache.mirror.phpchina.com/apr/apr-1.3.3.tar.gz
  tar -zxvf apr-1.3.3.tar.gz
  cd apr-1.3.3
  ./configure --prefix=/usr/local/apr
  make
  make install
  2) 安装Apache Apr Util
  wget http://apache.mirror.phpchina.com/apr/apr-util-1.3.4.tar.gz
  tar -zxvf apr-util-1.3.4.tar.gz
  cd apr-util-1.3.4
  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
  make
  make install
  3)安装Apache Httpd
  wget http://labs.xiaonei.com/apache-mirror/httpd/httpd-2.2.11.tar.gz
  tar -zxvf httpd-2.2.11.tar.gz
  cd httpd-2.2.11
  ./configure --prefix=/usr/local/apache2.2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-dav
  make
  make install
安装subversion
  (下载subversion1.6.12-deps.tar.gz 和subversion-1.6.12.tar.gz,一部分 (deps)是subversion要依赖的其它项目的包,是编译subversion所必须的代码。安装时分别解压缩这两个包,它们会自动解压到同一个目录)
  wget http://subversion.tigris.org/downloads/subversion-deps-1.6.4.tar.gz
  wget http://subversion.tigris.org/downloads/subversion-1.6.4.tar.gz
  tar -zxvf subversion-deps-1.6.4.tar.gz
  tar -zxvf subversion-1.6.4.tar.gz
  cd subversion-1.6.4
  ./configure --prefix=/usr/local/subversion1.6 --with-openssl --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util --with-apxs=/usr/local/apache2.2/bin/apxs
  说明:如果configure无法通过,出现没有找到sqlite3.c没有找到的错误,那么需要下载sqlite-amalgamation,设置如下
  【
  mkdir subversion-1.6.0/sqlite-amalgamation
  wget http://www.sqlite.org/sqlite-amalgamation-3.6.11.tar.gz
  tar -zxvf sqlite-amalgamation-3.6.11.tar.gz
  cp sqlite-3.6.11/* subversion-1.6.0/sqlite-amalgamation/
  然后重新configure即可
  】
  Yum install zlib-devel
  make
  make install
  如果编译成功,那么在/usr/local/apache2.2/modules下会出现mod_dav_svn.so 和 mod_authz_svn.so 模块。安装过程结束。
二、
svn配置过程如下
  基本的SVN服务器配置
  1,新建一个目录用于存储SVN所有文件
  # mkdir /home/svn
  2,新建一个版本仓库
  # svnadmin create /home/svn/project
  3,初始化版本仓库中的目录
  # svn import /tmp/html/ file:///home/svn/project -m “initial import”
  4,添加用户
  要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password”的条目就可以了。为了测试,我添加了如下内容:
  
  # harry = harryssecret
  # sally = sallyssecret
  pm = pm_pw
  server_group = server_pw
  client_group = client_pw
  test_group = test_pw
  5,修改用户访问策略
  /home/svn/project/conf/authz记录用户的访问策略,以下是参考:
  
  project_p = pm
  project_s = server_group
  project_c = client_group
  project_t = test_group
  
  @project_p = rw
  * =
  
  @project_p = rw
  @project_s = rw
  * =
  
  @project_p = rw
  @project_c = rw
  * =
  
  @project_p = rw
  @project_s = r
  @project_c = r
  @project_t = r
  * =
  说明:以上信息表示,只有project_p用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!
  6,修改svnserve.conf文件,让用户和策略配置升效.
  svnserve.conf内容如下:
  
  anon-access = none
  auth-access = write
  password-db = /home/svn/project/conf/passwd
  authz-db = /home/svn/project/conf/authz
  7,启动服务器
  # svnserve -d -r /home/svn
  注意:如果修改了svn配置,需要重启svn服务,步骤如下:
  # ps -aux|grep svnserve
  # kill -9 ID号
  # svnserve -d -r /home/svn
  8,测试服务器
  # svn co svn://192.168.60.10/project /tmp/
  Authentication realm:92731041-2dae-4c23-97fd-9e1ed7f0d18d
  Password for 'root':
  Authentication realm:92731041-2dae-4c23-97fd-9e1ed7f0d18d
  Username: server_group
  Password for 'server_group':
  svn: Authorization failed ( server_group没用根目录的访问权 )
  # svn co svn://192.168.60.10/project
  Authentication realm:92731041-2dae-4c23-97fd-9e1ed7f0d18d
  Password for ‘root’:
  Authentication realm:92731041-2dae-4c23-97fd-9e1ed7f0d18d
  Username: pm
  Password for ‘pm’:
  A    project/test
  A    project/server
  A    project/client
  Checked out revision 1.( 测试提取成功 )
  # cd project/server
  # vim main.c
  # svn add main.c
  # svn commit main.c -m “!!”
  Adding         main.c
  Transmitting file data .
  Committed revision 2.( 测试提交成功 )
  1.   /usr/local/subversion/bin/svn checkout svn://192.168.3.221/20141118/ /tmp/tools/html
  2.   svn add main.c
  3.   svn commit main.c -m “!!”



三、Subversion使用钩子脚本实现自动更新
  在 版本仓目录的hooks/ 目录下post-commit 文件,去掉后缀
  脚本内容如下
  ==================================================================
  SVN=/usr/local/subversion/bin/svn
  WEB=/tmp/tools/html/20141118
  $SVN update $WEB --username server_group --password server_pw
  ------------------------------------------
  su - apache -c "$SVN update $WEB --username server_group --password server_pw --no-auth-cache --non-interactive"
  -----------------------------------------
  ------------------------------------------
  $SVN update $WEB --username server_group --password server_pw --no-auth-cache --non-interactive
  ------------------------------------------
  ------------------------------------------
  $SVN update -r 52 $WEB/1/v6/ --username server_group --password server_pw --non-recursive
  ------------------------------------------
  ==================================================================
  让post-commit有执行的权限 chmod 777 post-commit
  

四、常见错误
  1.svn: Failed to add file '/tmp/tools/svn/20141119/index.html': an unversioned file of the same name already exists
  原因如提示,由于本地文件夹未加入版本控制前,已经有与版本控制文件夹有相同文件,当做CHECKOUT时将有此错误。

页: [1]
查看完整版本: SVN Server安装&配置