如何安排在Mercurial中进行本地提交的备份?

我们正在从SVN迁移到Mercurial,这个问题实际上从第一天就开始了。 所以,这是给定的:

  • 共享Mercurial存储库位于专用服务器上,该服务器不断进行备份。
  • 开发人员拉取修订版本,对其进行修改,进行本地提交,并推回到共享存储库。
  • 开发人员希望备份他们的本地提交。
  • 备份引擎是Mercurial。
  • 除非特定的开发人员失去了工作,否则支持的提交从不被拉取。 预计这种情况很less发生。
  • 从备份恢复提交应该是相对容易的。

我倾向于提供一个特殊的备份脚本,这将做这样的事情:

hg push -fr REV URL 

正如你所看到的,我可以在备份存储库中有多个磁头,除非你以其他方式说服我。

所以,问题是关于REV和URL,即我看到他们的以下选项:

  • REV =默认值,每个开发者的URL – 每个开发者都有一个专门的备份库。
  • 每个开发者的REV,相同的URL – 每个开发者在同一个备份库中都有一个专门的分支。
  • REV = default,所有的URL都是相同的 – 所有的开发者都将他们的本地提交回同一个备份库的缺省分支。

我对Mercurial没有多less经验,所以我觉得很难决定哪个选项是最好的。 任何人都可以提供意见吗?

编辑

我现在已经意识到,我的问题暴露了我对推命令的误解。 当然,我不是说push -fr REV URL 。 REV的意思是BRANCH,所以选项应该是:

  • BRANCH =默认,每个开发者的URL
  • BRANCH per dev,相同的URL
  • BRANCH =默认,全部相同的URL

接下来,我不知道如何推到不同的分支。

例如,开发人员在默认分支中工作,并希望将其本地提交备份到所有其他开发人员共享的特殊备份存储库。 当然,这个备份存储库并不是开发人员从中获取新的更改的存储库。 无论如何,备份需要去一个专门的分支机构,如每个选项所述2.我该怎么做? 我怎样才能推知更改被推到不同的分支?

(顺便说一句:你逻辑上是缺less第四个选项,

  • 每个开发的REV,每个开发的URL。

然而,这将没有多大意义。)

恕我直言,这将是有益的,如果每个开发人员有他自己的备份回购。 想象一下“恢复”的情况:你正在失去你的本地工作空间,不得不从备份恢复。 在那里你不一定需要对方的东西(或者你呢?)。 如果你试图推向“真正的”回购,它会伤害你。

在分支机构工作的每个人都不能很好地工作,因为这会干扰分支机构defaulttestingdevel和/或experimental发生的“日常工作”。 (只是例子)

=>每个开发者的url。

对于什么应该推的问题:一切,所以不要给任何-r参数。