【问题标题】:Synchronizing a collection of Mercurial repositories同步 Mercurial 存储库的集合
【发布时间】:2012-07-07 19:42:00
【问题描述】:

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

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

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

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

【问题讨论】:

  • 添加了同步标签

标签: mercurial synchronization


【解决方案1】:

据我所知,这样的事情并不存在。在存储库之间来回移动变更集的最安全方法始终是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 以及必要时的 init/clone,但您很快就会开始遇到边缘 ccase。

【讨论】:

  • 是的,这基本上就是我现在正在做的事情。 :-/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
  • 1970-01-01
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多