【发布时间】:2015-10-23 10:59:58
【问题描述】:
我最近将开发分支中的一个变更集移植到了默认分支中。之后,我的更改按需要默认。
但出乎意料的是,该签入发生了许多元数据级别的变更集更改。详细来说,
- 仅存在于我的开发分支中而不存在于默认分支中的几个文件在默认情况下被标记为已删除。
- 某些文件中仅存在于我的开发分支中而不存在于默认分支中的几行额外的行在默认情况下被标记为已删除。
Mercurial 已将默认中实际上不存在的某些文件和行标记为默认分支中已删除的文件和行。
因此,当我尝试再次与默认值合并时,mercurial 会将这些文件和行从默认值中删除,并尝试从我的分支中删除它们。
我尝试退出以单独恢复有问题的提交。遗憾的是,backout 只会更改签入期间修改的源代码行,但不会删除删除不可用文件和行的元数据标记。
是否有任何方法可以撤消不希望发生的提交元数据级别的更改?非常感谢任何帮助。
谢谢。
【问题讨论】:
-
这种行为不是 mercurial 默认所做的,通常是不可重现的。您应该提供一个实际演示所声称行为的测试用例。
graft仅复制变更集,不复制不属于被移植的变更集的信息:paste.openttdcoop.org/pdpucmoml -
@planetmaker 是的,我知道这不是默认行为,当我尝试再次重复相同的过程时,它无法重现。因此,我什至无法证明所解释的行为:(
-
您是否可能以错误的方式进行合并,告诉您的合并工具主要保留“错误”方面的内容?