首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hg ( Merculrial )备份策略

Hg ( Merculrial )备份策略
EN

Stack Overflow用户
提问于 2015-02-20 03:36:41
回答 2查看 152关注 0票数 1

我们有500多个汞仓库,并寻找一个快速和有效的备份需要。有没有我们可以用来备份这些存储库的脚本或工具?我们尝试了Hg包、hg克隆和常规文件系统备份,但它们都没有帮助。

是否有关于Hg存储库备份策略的标准实践或文档?

一个后续问题是,当用户正在推送变更集,而我们开始备份时,会发生什么?

我们确实使用RhodeCode来发布Hg存储库。谢谢

EN

回答 2

Stack Overflow用户

发布于 2015-02-20 03:56:30

没有标准。在推送期间拍摄的真正文件系统级快照是可以的,但非即时镜像操作(递归拷贝)可能会导致存储库损坏,尽管它可以修复到推送前的状态。

在过去,我做过一些简单的事情,比如:

代码语言:javascript
复制
for repo in $(find /srv/repos -type d -name .hg | sed 's/\.hg$//') ; do
    hg --cwd $repo --repository $repo push ssh://backupserver/$(basename $repo)
done

这将以增量方式将所有repos推送到远程ssh服务器,并具有完整的边更新边推送完整性,并在必要时创建它们。

票数 2
EN

Stack Overflow用户

发布于 2015-02-23 17:23:18

我有一个有点类似的从备份服务器克隆/拉取的解决方案,但我在hg钩子上触发了备份。

在主服务器全局hgrc中,我有:

代码语言:javascript
复制
changegroup.backup = .../backup.sh

backup.sh中是这样的:

代码语言:javascript
复制
REPO=`hg root`
ts sshpass -p '...' ssh hg@backupserver "~/bin/pull.exp $REPO" 2>> $LOG

Ts (任务假脱机程序)允许异步执行操作。expect脚本正在处理存储库可能是新的(因此执行hg clone --noupdate)或已经存在(因此执行hg pull)的事实,并且还可以在请求时为ssh密钥提供密码短语。

只允许备份钩子在第二台服务器上推送,所以不会出现多个机头的问题或所需的力。

我发现这种类型的实时备份的有趣之处在于,在主服务器崩溃的情况下,切换到备份服务器应该要快得多。

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

https://stackoverflow.com/questions/28615357

复制
相关文章

相似问题

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