以httpd-2.2.11和Subversion-1.6.3为例
Linux环境架设:
1. httpd-2.2.11安装
1.1 安装apr-1.3.6,httpd-2.2.11需要1.0以上的apr
tar -jxvf apr-1.3.6.tar.bz2
cd apr-1.3.6
./configure –prefix=/usr/local/apr-1.3.6/
make
make install
1.2 安装apr-util-1.3.8,httpd-2.2.11需要1.0以上的apr-util
tar jxvf apr-util-1.3.8.tar.bz2
cd apr-util-1.3.8
./configure –prefix=/usr/local/apr-util-1.3.8 –with-apr-util=/usr/local/apr-1.3.6
make
make install
1.3 安装http-2.2.11
tar jxvf httpd-2.2.11
cd httpd-2.2.11
./configure –prefix=/usr/local/httpd-2.2.11 –enable-rewrite=shared –enable-dav=shared –enable-deflate=shared –enable-so=shared –with-apr-util=/usr/local/apr-1.3.6 –with-apr-util=/usr/local/apr-util-1.3.8
make
1.4 make install
2 安装subversion-1.6.3
tar –xvf subversion-1.6.3.tar.bz2
tar –xvf subversion-dep-1.6.3.tar.bz2
cd subversion-1.6.3
./configure –prefix=/usr/local/subversion-1.6.3/ --with-apxs=/usr/local/httpd-2.2.11/bin/apxs –with-apr=/usr/local/apr-1.3.6/ --with-apr-util=/usr/local/apr-util-1.3.8/
make
make install
3 创建版本库
mkdir –p /svn/repo
/usr/local/subversion-1.6.3/bin/svnadmin create /svn/repo/test
4 配置验证
4.1 验证方式有两种,其一通过httpd方式验证,其密码是经过加密;其二通过subversion自身带的方式验证,其密码是明文。两种方式的权限分配都是通过同一个authz来分配的。
4.2 httpd方式
创建密码文件users同时添加用户 svnroot htpasswd –c /svn/users svnroot
添加用户manager htpasswd /svn/users manager
注意提示输入密码
4.3 subversion方式
vi /svn/users.conf
输入
[users]
svnroot = svnroot
manager = manager
……
4.4 authz文件,在每个group后面可以添加多个user,每个user之间以逗号隔开即可
[groups]
superteam = svnroot
otherteam = manager
[/]
@superteam = rw
@otherteam = rw
5 配置httpd.conf
vi httpd.conf
5.1 修改Listen 为*:80(若端口被占用,请修改为其他端口)
5.2 修改User daemon 为User svnroot
Group daemon Group svn
5.3 在最后添加
<Location />
DAV svn
SVNParentPath /svn/repo
Satisfy Any
Require valid-user
AuthType Basic
AuthName "Welcome to *********** Subversion Server!"
AuthUserFile /svn/users
AuthzSVNAccessFile /svn/authz
</Location>
6 赋权限
6.1 将user manager加入svn组
Groupadd svn
Useradd manager–g svn
6.2 将/svn文件夹赋给svnroot
chown –R svnroot.svn /svn
chmod –R 777 /svn
7 启动
7.1 切换user到svnroot
7.2 启动httpd-2.2.11 /usr/local/httpd-2.2.11/bin/apachectl –k start
7.3 启动subversion-1.6.3 /usr/local/subversion-1.6.3/bin/svnserve –d –r /svn/repo
Window环境:
版本库管理
对于版本库的管理来说是不区分平台的,所以可以windows平台和linux可以是随意的。
版本库可以做全备、增量备份和镜像同步三种备份方式,在这里只讲镜像同步。
镜像可以单机双库和双机双库备份,两种方式没有本质的区别
http://www.woaidiannao.com。
以svnroot账号做
配置镜像同步步骤
1. 在镜像机192.168.1.1上创建版本库/svn/repo/qq,
2. cp /svn/repo/qq/hooks/pre-revprop-change.tmpl /svn/repo/qq/hooks/pre-revprop-change
3. vi /svn/repo/qq/hooks/pre-revprop-change,注释掉后面的三行,保存退出
4. 在源机192.168.1.2执行镜像初始化
/svn/local/subversion-1.6.3/bin/svnsync init svn://192.168.1.1/qq file:///svn/repo/test --source-username=svnroot --source-password=svnroot --sync-username=svnroot --sync-password=svnroot
5. 同步
/svn/localsubversion-1.6.3/bin/svnsync sync svn://192.168.1.1/qq --sync-username=svnroot --sync-password=svnroot
6. 修改/svn/repo/test/hooks/post-commit,以每次版本库有提交时都会自动同步到镜像上
cp /svn/repo/test/hooks/post-commit.tmpl /svn/repo/test/hooks/post-commit
添加/svn/localsubversion-1.6.3/bin/svnsync sync --non-interactive svn://192.168.1.1/qq
7. 版本库迁移
7.1 打包
/usr/local/subversion-1.6.3/bin/svnadmin dump /svn/test >test.dump
7.2 恢复
创建空的版本test
/usr/local/subversion-1.6.3/bin/svnadmin create /svn/test
恢复test
/usr/local/subversion-1.6.3/bin/svnadmin load /svn/test <test.dump
注:双机备份一定要开svnserve服务来使用svn协议去做同步,http是不行的