同步Mercurial存储库的集合

时间:2012-07-07 19:42:00

标签: mercurial synchronization

我在网络共享上有一组Mercurial存储库。为了启用离线工作,我希望在笔记本电脑上使用此集合的本地副本,并在我上线时轻松同步这两个副本。

为此,我编写了一个快速脚本,自动将每个本地存储库与相应的远程存储库(推拉)同步,但它缺少一些理想的功能:

  • 从本地到远程集合自动克隆新存储库(反之亦然)
  • 组织(移动/重命名)本地存储库并在远程端应用更改的能力,下次同步时
  • 同步hg strip和其他重写存储库历史记录的命令的能力
  • hgwebdir集合甚至Bitbucket同步的能力

是否有任何现有的解决方案可以提供这些功能中的一些(或全部)?

1 个答案:

答案 0 :(得分:0)

据我所知,这一切都不存在。在存储库之间来回移动更改集的最安全方法始终是hg pushhg pull,并且这些命令都不会在多个源或目标存储库上运行。

出于备份目的,我之前做过类似的事情:

for thedir in $(find . -type d -name .hg) ; do
   repopath=$(dirname $thedir)
   hg push $repopath ssh://mybackupserver//path/to/backups/$(basename $repopath)
done

将所有本地存储库推送到场外备份。从理论上讲,你可以同时执行推送和拉取,如果需要,可以执行初始化/克隆,但是你很快就会开始使用边缘ccases。