linux服务器上svn的安装和配置

时间:2022-09-10 18:19:29

安装:直接用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

常见错误整理

  1. svnserve.conf:12: Option expected
    一般是因为svnserve.conf配置文件中,行首有空格
  2. svnsync Authorization failed
    查看passwd文件是否已经建好,并在同步时使用–source-username/password和–sync-username/password
  3. connection refused
    查看另一端的svnserve是否已经启动

  4. pre-revprop-change需要修改其内容时,文件保持为空即可

#!/bin/sh
exit 0