可以将相同的文件提交到2个SVN存储库吗?

时间:2009-05-30 17:31:52

标签: svn version-control tortoisesvn

如果我有一些特别重要的文件,他们可以将SVN提交给两个存储库吗?

我可以在2台不同的机器上设置两个SVN存储库,这样如果一台机器出现问题,那么总会有备份。

(如果它可以是Tortoise或命令行,那将是最好的)。感谢。

4 个答案:

答案 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命令将这些转储复制到其他服务器。