首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何备份远程SVN存储库

如何备份远程SVN存储库
EN

Stack Overflow用户
提问于 2010-02-20 23:07:46
回答 9查看 28.7K关注 0票数 51

我目前正在将我的SVN服务器从我的家庭服务器移动到我的远程服务器,这样我就可以更容易地从其他位置访问它。我的远程服务器未备份,因此我希望定期将其备份到我的主服务器。

远程服务器为Windows 2003服务器。主服务器是Windows Home Server。

做这件事最好的方法是什么?我可以让我的家庭服务器每晚获得远程服务器的转储吗?带宽不是一个很大的考虑因素,但如果我可以将任何新的签到复制到我的家庭服务器上的SVN服务器上,那就很好了。

欢迎任何建议。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-02-21 05:46:11

只需使用svnsync命令即可。

首先,在您的家庭计算机上创建一个新的存储库。

代码语言:javascript
复制
svnadmin create c:\backuprepo

或在Unix上:

代码语言:javascript
复制
svnadmin create ./backuprepo

接下来,创建一个名为pre-revprop-change.bat的文件:

代码语言:javascript
复制
echo exit 0 > c:\backuprepo\hooks\pre-revprop-change.bat

或在Unix上:

代码语言:javascript
复制
echo -ne '#!/bin/sh\nexit 0' > ./backuprepo/hooks/pre-revprop-change
chmod ugo+x ./backuprepo/hooks/pre-revprop-change 

然后,初始化同步:

代码语言:javascript
复制
svnsync init file:///c:/backuprepo https://url/of/your/repository

或在Unix上:

代码语言:javascript
复制
svnsync init file:///Volumes/volumelabel/backuprepo https://url/of/your/repository

在此之后,您可以简单地运行

代码语言:javascript
复制
svnsync sync file:///c:/backuprepo

一天一次左右,您将只获得那些尚未在您的备份存储库中的更改。第一次同步将需要一段时间,但在您将备份存储库与真实存储库同步后,只需几秒钟即可同步,因为只有那些新的修订版本才需要同步。

票数 119
EN

Stack Overflow用户

发布于 2012-05-02 11:50:16

从Subversion1.7开始,您还可以使用新命令svnrdump。从文档中:

转储-即生成位于SOURCE_URL的存储库项目的修订版的存储库转储流,将信息打印到标准输出。

用法为:

代码语言:javascript
复制
svnrdump dump http://example.com/repos/ > repos.dump

这将在repos.dump中创建存储库的“转储文件”。这是包括历史记录在内的存储库数据的完整备份,但subversion客户端不能直接读取。如果需要恢复此数据,请使用标准svnadmin工具:

代码语言:javascript
复制
svnadmin create c:\backup-repos
svnadmin load c:\backup-repos < repos.dump

我没有做任何测试,但这可能会比svnsync慢。svnrdump每次都会完全转储存储库,我假设synsync只会导入自上次运行以来对存储库所做的更改。不过,您将拥有一个包含整个存储库的文件,这可能更容易管理,也可能不容易。

请注意,您可能希望通过gzip或类似程序来传输svnrdump的输出,以可能显著减小输出文件的大小。

票数 24
EN

Stack Overflow用户

发布于 2010-04-24 21:59:05

创建本地存储库

svnadmin create /Users/jsmith/repo

创建一个空的revprop-change挂钩脚本

echo '#!/bin/bash' > /Users/jsmith/repo/hooks/pre-revprop-change

使pre-revprop-change挂钩脚本成为可执行文件

chmod +x /Users/jsmith/backup/hooks/pre-revprop-change

初始化svnsync

svnsync init file:////Users/jsmith/repo https://www.smith.com/repo

同步回购

svnsync sync file:////Users/jsmith/repo

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2302592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档