2009-09-10 46 views
4

现在我正在使用Windows XP。 如果我只是复制整个存储库文件夹中的可视SVN, 一旦服务器关闭,我如何通过备份的存储库文件夹恢复它? 另一个更好的解决方案来备份和恢复视觉svn?如何备份和恢复svn中的所有源代码?

顺便说一下,在视觉控制中备份和还原的任何方法?

回答

1

您可以复制整个目录进出。文件是文件,对他们来说没有任何魔力。

如果你想恢复之前做更复杂的东西,像编辑以某种方式资料库的内容,那么你需要转储和装载。

+5

如果您在存储库“热”时使用复制文件方法,则最终可能会损坏数据。提交之前的一些数据和提交之后的一些数据。 – 2011-11-10 14:58:57

+1

我不会推荐这个。 SVN仓库应该只使用svnadmin命令来处理。 – 2017-12-04 04:36:37

+0

这不应该是上述原因的接受答案。 – teroi 2018-01-25 09:46:50

25
svnadmin dump /path/to/repository | bzip2 -9c > svn-backup.bz2 

当然,压缩步骤是可选的。

在另一个答案中推荐的“复制树”方法的主要优点是Subversion“转储”格式比Subversion在其存储库中大多数数据库格式更好的归档格式。 (这是一种速度与简单的折衷。)您可以在文本编辑器中读取转储文件,轻松解析它,并且使用不同的数据库后端将其导入到不同的Subversion存储库中。

恢复上述文件用:

bzip2 -dc svn-backup.bz2 | svnadmin load /path/to/repository 
+0

所以,如果我用这个倾倒我的仓库,并承担由此产生的文件到一个新的计算机具有相同的目录结构,然后我就可以从库中签的那些文件呢? (我的存储库相当大,它的历史可以追溯到几年,我想从头开始,但保留当前的存储库作为备份)看到我的问题:http://stackoverflow.com/questions/29607055/delete-older -svn-files-from-reposititory – 2015-04-13 13:53:35

2

您应该使用svnadmin hotcopy来创建存储库的备份。

+0

我试过了,但系统提示“无法找到文件..... /格式” – MemoryLeak 2009-09-10 02:59:44

+1

这是真的吗?我读过的所有东西,包括来自K. Fogel和B. Collins-Sussman的邮件列表笔记说,“svn dump”对备份存储在存储库中的* data *是很好的。如果你想备份锁定信息或其他信息,你可能需要hotcopy,但几乎没有人会这样做,对吗? – khedron 2011-02-28 19:09:48

1

这是我用:

#!/bin/bash 

mkdir /tmp/backup_svn 

for dir in /var/www/svn/*/ 
    do 
     dir=${dir%*/} 
     svnadmin dump "${dir}" > "/tmp/backup_svn/${dir##*/}.dmp" 
    echo "--- Dump ${dir##*/} done!" 
done 

要恢复,你需要之前创建日回购文件夹中转储:

svnadmin create /var/www/svn/test 

而且他们:

svnadmin load /var/www/svn/test/ < /tmp/backup_svn/test.dmp 

这个方法恢复存储库中的所有修订/标签/分支。

+0

这是转储所有SVN的好选择。你甚至可以添加压缩。 – 2017-12-04 04:37:17