同步一组Mercurial代码库的方式

3
我有一批存储在网络共享中的Mercurial仓库。为了实现离线工作,我想在我的笔记本电脑上拥有该仓库的本地副本,并在联网时轻松同步这两个副本。
因此,我编写了一个快速脚本来自动同步每个本地仓库与相应的远程仓库(推送和拉取),但它缺少几个理想的特性:
- 自动克隆新的仓库从本地到远程集合(反之亦然) - 有能力组织(移动/重命名)本地仓库并在下次同步时在远程端应用更改 - 有能力同步hg strip和其他重写仓库历史的命令 - 有能力同步hgwebdir集合甚至Bitbucket
是否有现有的解决方案提供了一些(或所有)这些功能?

添加了一个同步标签。 - Julian Knight
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

这个程序将所有本地仓库推送到离线备份。理论上,您可以同时进行推送和拉取,如果必要的话还可以进行初始化/克隆,但是很快就会遇到边缘情况。


是的,这基本上就是我现在正在做的事情。 :-/ - Søren Løvborg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接