3

我在网络共享上有一组 Mercurial 存储库。要启用离线工作,我需要在我的笔记本电脑上保存此集合的本地副本,以及在我在线时同步两者的简单方法。

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

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

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

4

1 回答 1

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

它将所有本地存储库推送到异地备份。从理论上讲,您可以同时执行 push 和 pull 以及必要时的初始化/克隆,但是您很快就会开始遇到边缘 ccase。

于 2012-07-09T12:35:21.597 回答