如果我有一些特别重要的文件,他们可以将SVN提交给两个存储库吗?
我可以在2台不同的机器上设置两个SVN存储库,这样如果一台机器出现问题,那么总会有备份。
(如果它可以是Tortoise或命令行,那将是最好的)。感谢。
答案 0 :(得分:7)
您可以在服务器上使用 svnsync 来创建原始存储库的镜像。
更多信息:http://svn.apache.org/repos/asf/subversion/trunk/notes/svnsync.txt
答案 1 :(得分:1)
好吧,您可以使用post-commit-hook并将整个存储库(或仅重要文件)提交到另一个存储库。这将消除记住将所有内容提交到两个存储库的痛苦,并且是一种优雅的解决方案。
答案 2 :(得分:1)
从activa的想法扩展(使用svnsync),你可以通过在SVN钩子脚本中触发它来获得svnsync在每次提交后运行,例如post-commit。这样,在每次提交后,您的辅助副本将与主副本同步,从而始终使备份保持最新。
答案 3 :(得分:1)
如果您担心丢失存储库数据,那么执行自动备份是一种可能的解决方案。 “svnadmin dump”命令非常适合。
我使用此脚本创建所有存储库的转储:
#!/bin/bash
DATE=`date "+%F"`
BACKUPDIR=/var/backup
# dump subversion repos.
# all subversion projects are in /usr/local/svn
for REPODIR in /usr/local/svn/*
do
REPONAME=`basename $REPODIR`
TARGET=svndump-$REPONAME-$DATE.gz
echo backing up svn repository $REPODIR to $TARGET
svnadmin dump $REPODIR | gzip > $BACKUPDIR/$TARGET || exit 1
done
此脚本从cron作业运行。您可以添加rsync命令将这些转储复制到其他服务器。