1、安装svn服务端:yum install subversion
2、进入目录,准备创建svn目录:cd /usr/local/
3、创建一个svn目录:mkdir svnRepo
4、修改目录权限为777: chmod -R 777 svnRepo
5、创建一个svn版本仓库test(test可以随便起名字):svnadmin create/usr/local/svnRepo/test
6、进入first版本仓库下的配置文件目录:cd svnRepo/test/conf
7、修改svnserve.conf:
anon-access = none //默认是只读read
auth-access =write //认证后有写入权限
password-db =passwd //帐号密码配置文件
authz-db = authz //权限配置文件
realm = test //改成自己的版本库生效范围
8、修改authz:
[group]
first= ddl,shl //创建一个first的组,并制定两个用户ddl和shl
[/]
//制定根目录下的权限
@first = rw//first组用户权限为读写* = r //其他用户只有读权限
9、修改passwd:
[users]
ddl=123456 //用户名 = 密码
shl =123456
10、设置自启动:vim /etc/rc.local
添加:svnserve -d -r /usr/local/svnRepo/test
查找是否有svn的进程:ps aux |grep 'svn'
杀死2505这个查找到的svn进程:kill -9 进程号
启动svn: svnserve-d -r /usr/local/svnRepo/test (可以把这个放到/etc/local/rc.local文件中,实现开机自启动)
查看svn信息:netstat -anp|grep svnserve
现在用客户端checkout应该就可以了
11、进入svn仓库hooks文件下:cp post-commit.tmpl post-commit
然后打开文件清空内容,修改为以下代码:
#!/bin/sh
export LANG=zh_CN.UTF-8
/usr/bin/svn update --username **** --password **** /var/www/test
其中第一行意思是:用sh来解析这个脚本,因为各种shell的语法有细微的差别
第二行是编码格式:这里我使用的是UTF-8
最后一行/usr/bin/svn是svn的路径,不是项目路径,应该都是一样的,后半句分别是用户名、密码、和项目路径。--username这个比较坑了,网上搜出来的很多都搞错了,前面其实是两个减号,英文输入法下的。
12、修改post-commit的可执行权限:chmod 755 post-commit
13、在服务器进入项目目录/var/www/testcheckout 整个项目。
注意此处不要checkout文件夹,正确代码应该是这样:
svn checkout svn://{服务器地址}:{端口号}/test .//注意目录后面还有一个点
注意:此处的/test 可不需要添加:( 添加的目的是为了实现多个项目。)
svn checkout svn://{服务器地址}:3690 .//注意目录后面还有一个点
至此,如果按照此步骤搞下来,应该已经没有问题了,你可以本地commit代码,自动同步到项目了。