centos5.4-nginx0.8-mysql5.1.4-php5.2.13-svn1.6
下载安装包
wget http://subversion.tigris.org/downloads/subversion-1.6.11.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.11.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.11.tar.gz
安装
tar zxvf subversion-1.6.11.tar.gz
tar zxvf subversion-deps-1.6.11.tar.gz
cd subversion-1.6.11
./configure --with-ssl --enable-maintainer-mode
make
make install
tar zxvf subversion-deps-1.6.11.tar.gz
cd subversion-1.6.11
./configure --with-ssl --enable-maintainer-mode
make
make install
创建仓库
svnadmin create /var/svn/mytest
修改仓库的配置
/var/svn/mytest/conf 目录下面有三个文件
authz 用户文件
passwd 密码文件
svnserve.conf 配置文件
passwd 讲解(用户名密码)
[user]
#用户名 = 密码 比如我要添加个用户 lrenwang 密码是 123456
lrenwang = 123456
admin = admin123
authz 讲解 (用户,组访问权限)
[groups]
#组名 = 用户用","分割
admin = lrenwang,admin
#访问的位置 / 是跟,相当于 /var/svn/mytest 下面所有, 另外注意 /var/svn/mytest 里面文件都是二进制保存,不同于项目开发中那个列表形式,要查看,只能用svn工具看
[/]
# @组名 访问权限 r读 w写
@admin = rw
svnserve.conf 讲解(每个仓库的独立配置)
anon-access = none 没有帐号 不能访问
auth-access = write 用户可以写入
password-db = /var/svn/mytest /conf/passwd 指向密码文件的位置
authz-db = /var/svn/mytest /conf/authz 指向用户文件的位置
realm = svn1 给每个仓库起个不同的名字,(我也没搞太清楚 哈)
启动
svnserve -d -r /var/svn/mytest --listen-port 3312
可以启动多个端口,对应不同的仓库,例如
svnserve -d -r /var/svn/mytest1 --listen-port 3313
win 下面客户端的连接 svn://服务器ip:3312
高级篇
建立好仓库后,导入项目,
用win下面的乌龟导入比较方便,先创建一个副本,然后把项目复制过来,然后更新
linux 下面 svn import /var/www/mytest svn://服务器IP:端口号 -m "Initial Import"
开发流程是这样, 创建仓库后,每个人更新到自己电脑上的都是副本,修改后提交,用自己电脑上的wamp环境进行修改测试(当然也有用linux),这时候测试人员怎么办? 让他们自己更新,显然很麻烦, 这时候需要配置 hooks 钩子进程,听起来好像病毒阿 呵呵
简单的说就是当有更新提交到svn服务器的时候, 就激活了 hooks 了, 这时候让服务器自己更新就好了
先在服务器创建个副本
svn co svn://服务器IP:端口号 /var/www/mytest
然后增加配置文件
vi /var/svn/mytest/hooks/post-commit
#!/bin/sh
svn update update /var/www/mytest --username 'lrenwang' --password '123456'
保存后,一定要赋予执行权限,否则会报错 post-commit hook failed (exit code 255)
chmod +x /var/svn/mytest/hooks/post-commit
测试人员直接浏览/var/www/mytest 就好了
SVN初始化实例
1 建立仓库
svnadmin create /data/item1
2 修改仓库相关配置,直接调用泰安配置就行
/data/item1/conf/svnserve.conf 修改相关的用户文件位置 密码文件位置,只要改好一份,直接复制就行
3 启动svn
svnserve -d -r /data/item1/ --listen-port 3315
4 添加到自动启动
echo "svnserve -d -r /data/item1/ --listen-port 3315" >> /etc/rc.d/rc.local
5 创建服务器副本
mkdir /data/htdocs/item1/
svn co svn://192.168.1.2:3315 /data/htdocs/item1/
6 执行自动挂钩
echo '#!/bin/sh' >> /data/item1/hooks/post-commit
echo 'svn update /data/htdocs/item1 --username "lrenwang" --password "lrenwang"' >> /data/item1/hooks/post-commit
chmod +x /data/item1/hooks/post-commit




