我目前正在将我的SVN服务器从我的家庭服务器移动到我的远程服务器,这样我就可以更容易地从其他位置访问它。我的远程服务器未备份,因此我希望定期将其备份到我的主服务器。
远程服务器为Windows 2003服务器。主服务器是Windows Home Server。
做这件事最好的方法是什么?我可以让我的家庭服务器每晚获得远程服务器的转储吗?带宽不是一个很大的考虑因素,但如果我可以将任何新的签到复制到我的家庭服务器上的SVN服务器上,那就很好了。
欢迎任何建议。
发布于 2010-02-21 05:46:11
只需使用svnsync命令即可。
首先,在您的家庭计算机上创建一个新的存储库。
svnadmin create c:\backuprepo或在Unix上:
svnadmin create ./backuprepo接下来,创建一个名为pre-revprop-change.bat的文件:
echo exit 0 > c:\backuprepo\hooks\pre-revprop-change.bat或在Unix上:
echo -ne '#!/bin/sh\nexit 0' > ./backuprepo/hooks/pre-revprop-change
chmod ugo+x ./backuprepo/hooks/pre-revprop-change 然后,初始化同步:
svnsync init file:///c:/backuprepo https://url/of/your/repository或在Unix上:
svnsync init file:///Volumes/volumelabel/backuprepo https://url/of/your/repository在此之后,您可以简单地运行
svnsync sync file:///c:/backuprepo一天一次左右,您将只获得那些尚未在您的备份存储库中的更改。第一次同步将需要一段时间,但在您将备份存储库与真实存储库同步后,只需几秒钟即可同步,因为只有那些新的修订版本才需要同步。
发布于 2012-05-02 11:50:16
从Subversion1.7开始,您还可以使用新命令svnrdump。从文档中:
转储-即生成位于SOURCE_URL的存储库项目的修订版的存储库转储流,将信息打印到标准输出。
用法为:
svnrdump dump http://example.com/repos/ > repos.dump这将在repos.dump中创建存储库的“转储文件”。这是包括历史记录在内的存储库数据的完整备份,但subversion客户端不能直接读取。如果需要恢复此数据,请使用标准svnadmin工具:
svnadmin create c:\backup-repos
svnadmin load c:\backup-repos < repos.dump我没有做任何测试,但这可能会比svnsync慢。svnrdump每次都会完全转储存储库,我假设synsync只会导入自上次运行以来对存储库所做的更改。不过,您将拥有一个包含整个存储库的文件,这可能更容易管理,也可能不容易。
请注意,您可能希望通过gzip或类似程序来传输svnrdump的输出,以可能显著减小输出文件的大小。
发布于 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
https://stackoverflow.com/questions/2302592
复制相似问题