使用Mercurial,有没有办法快速备份到tmp存储库?

时间:2010-06-19 01:13:27

标签: mercurial dvcs

使用Macbook,我担心如果硬盘在路上并且坏了,那么3天的代码都会丢失。

所以我实际上在主服务器计算机上有一个tmp存储库,我可以hg push到它。困境是,除非我先提交,否则我无法推动,而且从以前的经验来看,除非我们准备推送到中央服务器(与同事共享代码,合并等),否则我们不应该提交(原因是,我们无法推送所选文件 - 我们必须推送所有已提交的文件或不推送任何文件。那么如何解决这个问题?

有没有办法说,“将所有修改过的文件(和添加的文件)复制到中央服务器上的/ user / peter / 2010-06-18?”“或者不提交但不知何故将它放到服务器上?” / p>

1 个答案:

答案 0 :(得分:4)

正常的方法就是提交。对于DVCS,人们敦促“尽早提交,经常提交”。经常在本地提交,然后为了备份目的,经常推送到服务器上的tmp repo。如果您对自己的工作感到满意,那么您可以从tmp repo推送到共享的“中央”服务器。

没有必要确保在每个变更集之后编译所有内容,规范是确保您推送的每个变更集的后端都使“tip”处于可编译状态。通常一个触发持续集成构建服务器在每组变更集(变更组)到达后转换构建,并且它只考虑“小费”。

如果你真的,实在无法忍受不能独立的变更集,那么一个善变的专业人员会使用mercurial queues将版本化的补丁推送到单独的队列存储库,同时处理它。愿意玩火的人会使用折叠扩展将变更集的顺序合并到一个变更集中,然后再推送到共享的存储库。

在提出的三个选项中:

  1. 修复您的工作流程,以便中央仓库可以处理无法编译的变更集,只要它们是编译的变更组的一部分
  2. 使用mercurial队列在版本化的修补程序存储库中保留补丁
  3. 使用折叠扩展名重写历史记录(玩火)
  4. 我认为第一种是最常见的,通常是“正确”的方式。