最近折腾trac和远程svn的整合,就要把远程svn sync到trac所在的服务器。
考虑两个方案:
1. SVK
2. svnsync
SVK装了一个,libneon引用libssl出现了一个错误。于是转试svnsync。
svnsync是svn自带了,不需再安装。
1. 准备目标目录
mkdir ~/target
svnadmin create ~/target
2. 制作hook
cd ~/target
echo '#!/bin/sh' > hooks/pre-revprop-change
chmod 777 hooks/pre-revprop-change #不要忘记了!
3. 设置镜像
svnsync init file:///home/xxx/target http://remote-svn-host/repos/proj1 --username=xxx --password=xxx
4. 同步
svn sync file://~/target
说说不爽的地方吧,就是不能单独同步http://remote-svn-host/repos/proj1下面的一个子目录!
如果这样:
svnsync init file://~/target http://remote-svn-host/repos/proj1/ourteam --username=xxx --password=xxx
那么就会报错:
svnsync: Session is rooted at 'http://remote-svn-host/repos/proj1/ourteam' but the repos root is 'http://remote-svn-host/repos/proj1'
我们和另外几个team合用了proj1这个目录,如果全部同步十分巨大。
只好放弃。再试试解决SVK的问题吧。
comments:
subversion 1.5版本以上所带的svnsync已经可以同步一个子目录了。
不过如果server端svn版本太低的话也是不行的。。。。
没有评论:
发表评论