安装:直接用yum install subversion安装即可
新建repository
mkdir /var/svn
svnadmin create /var/svn/repo
导入备份
svnadmin load repo < repo_backup
启动svn
svnserve -d -r /var/svn/repo
查看svn状态
ps aux | grep svn
创建本地目录并连接svn库
svn checkout(co) svn:127.0.0.1/repo
提交文件
cd /var/svn/repo
svn add /var/svn/repo/newfile
svn commit -m "add newfile"
提交修改文件
cd /var/svn/repo
svn commit -m "edit filename"
删除文件
cd /var/svn/repo
svn delete a.text
svn commit -m "delete a.text"
同步备份svn(svnsync)
在 SVN Server 中有几个机制是我们必须要先知道的:
Start commit hook
Pre-commit hook
Post-commit hook
从名称上可以知道这是(Commit)到 SVN Server 時会执行的时机点。Post-commit hook 代表当User Commit 完之后执行的patch。 Pre-revision property change hook是SVN Server 上的版本要被变更(同步)前所要执行的patch,用来修订版本属性修改的通知的,开启同步必须开启它,就算是空的patch也可以,因为在同步時,备份端的SVN Server 会去找这个档案来执行)。
同步方法步骤如下:
在备份端
cd /var/svn/repo/hooks
cp pre-revprop-change.tmpl pre-revprop-change
chmod +x pre-revprop-change
首次同步
svnsync init file:///path/backup svn://svnserver1/test
svnsync sync file:///path/backup
配置实时同步,在主库端
cd /var/svn/repo1
cp post-commit.tmpl post-commit
chmod +x post-commit
sed 'svnsync sync --source-username usr1 --source-password pwd1 --sync-username usr2 --sync-password pwd2 --non-interactive --trust-server-cert <PC2 SVN Repository>' post-commit
常见错误整理
- svnserve.conf:12: Option expected
一般是因为svnserve.conf配置文件中,行首有空格 - svnsync Authorization failed
查看passwd文件是否已经建好,并在同步时使用–source-username/password和–sync-username/password connection refused
查看另一端的svnserve是否已经启动pre-revprop-change需要修改其内容时,文件保持为空即可
#!/bin/sh
exit 0