当你的工作副本发生变化时,hg更新是一个坏主意吗?

时间:2010-04-16 08:16:21

标签: mercurial

似乎如果你做了提交然后合并会更好。当你的工作副本发生变化时,甚至允许我更加惊讶。是否允许在这种情况下更新以避免具有两个父项的提交,这是由合并产生的?

2 个答案:

答案 0 :(得分:3)

我相信hg update会尝试合并您未提交的更改:

  

当工作目录包含未提交的更改时,以下规则适用:

     
      
  1. 如果未指定-c/--check-C/--clean,则:
      如果请求的变更集是工作目录的父变量的祖先或后代,则未提交的变更将合并到请求的变更集中,并且合并的结果将保持未提交。
      如果请求的变更集不是祖先或后代(即,它位于另一个分支上),则中止更新并保留未提交的更改。
  2.   
  3. 使用-c/--check选项,中止更新并保留未提交的更改。
  4.   
  5. 使用-C/--clean选项,将丢弃未提交的更改,并将工作目录更新为请求的变更集。
  6.   

这将避免对操作(hg更新)进行不必要的提交(在.hg repo中注册),该操作仅涉及更新工作目录

答案 1 :(得分:2)

Mercurial鼓励记录项目的所有历史记录。如果您在工作目录中完成了一些工作,为什么不提交这些更改,将结果作为提交消息提供有意义的描述,然后将结果合并到主分支中?对于其他人来说,更清楚的是在两个单独的变更集中看到您作为正常工作所做的以及您为解决合并冲突而做出的

通常额外的合并变更集是可以的,但有时您只想在提交之前在主分支的顶部重新定义当前更改。您可以查看 rebase 扩展程序。新的hg rebase命令允许您重新定义已经提交的更改。