linux subversion服务安装

linux 下面安装svn server (linux版本为ubuntu)

1、安装svn服务:

  sudo apt-get install subversion

2、开启服务

  svnserve -d

  检查是否开启:ps aux | grep svnserve

3、建立仓库(已经建好svn目录,用于所有的svn的用户和权限管理的根目录)

  svnadmin create /var/svn/test (文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件。如果后面还有项目,可以再create一个项目,如:svnadmin create /var/svn/test2,都统一绑定在一个ip上面。下面第5部)

4、修改配置(在建立的仓库里面有三个配置文件authz、passwd、svnserve.conf)

  svnserve.conf:是总配置文件,限制匿名用户是否可以访问,确定权限文件,用户密码文件。 

 

#匿名访问的权限,可以是read,write,none,默认为read  
anon-access = none 
#认证用户的权限,可以是read,write,none,默认为write  
auth-access = write 
#用户密码的路径,去掉前面的#  
password-db = passwd 
#权限的路径,去掉前面的#  
auth-db = authz

注意:所有的行都必须顶格,否则报错  

passwd:(用户账号配置文件,用户名=密码)

  

[users]  
svnuser = password 
wangkangluo1 = 123456

  

authz:(用户权限配置文件)

  

[group]

  sunny = gep,wce //创建一个sunny的组,并制定两个用户gep和wce

  [/]             //制定当前svn的根目录下的权限(也可以[test:/])        //test是创建的svn库

  @sunny = rw     //sunny组用户权限为读写

  * = r           //其他用户只有读权限

5、启动Subversion服务器

1、关闭subversion服务进程,killall svnserve

 2、svnserve -d -r /var/svn --listen-host 10.19.3.103 ## --listen-host指定ip(建议不添加此参数,以便在服务器上通过127.0.0.1来检出) 或者--listen-port 3690 (用户自定义,不加默认是当前服务器,端口是3690)

其中-d表示以守护进程方式运行,-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径,这样访问服务器时就可以直接 用svn://服务器ip来访问了。如果有多个项目,可以附加目录来访问(如:svn://10.19.3.103/ezhu)

配置subversion 服务器自动更新

1)复制版本库下面的hooks下面的post-commit.tpml 成post-commit 并且替换成如下内容

#!/bin/sh
WEB=/var/wwwroot/test
export LANG=en_US.UTF-8    ##  中文的话是  zh_CN.UTF-8
svn update $WEB --username o135 --password 'o135123'
chown -R www:www $WEB ## 修改所属用户和用户组。具体可用性 待学习
chmod -R 755 $WEB ## 修改权限,具体参考用户的权限来设置,亦可不设置

注意:编辑post-commit的权限(配置成可执行的就行了),本地提交了文件,svn服务器第一次要在目录下面去检查(如:svn checkout svn://110.222.102.88/demo)