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)