合并推送命名分支与默认值会导致错误

时间:2012-01-21 23:33:23

标签: version-control mercurial merge branch

我使用mercurial eclipse插件20111225_Content_Build创建了一个命名分支,在本地提交此分支后,我推送到我的bitbucket存储库,而没有先与default合并。现在我有默认(非活动)和我的命名分支20111225_Content_Build(活动)。我尝试按照以下步骤合并这两个:

hg update default

这给了我一个错误:abort: untracked file in working directory differs from file in requested revision: 'target/m2e-wtp/web-resources/META-INF/maven/org.bixin.dugsi/Dugsi_Manager/pom.xml'

然后当我尝试合并时:hg merge 20111225_Content_Build我收到一条错误,指出我无法与工作目录合并?

abort: merging with a working directory ancestor has no effect

我确实有几个生成的target/文件尚未提交或推送,我是否需要推送这些文件才能合并这两个分支?

1 个答案:

答案 0 :(得分:4)

更新时的消息告诉您,您的pom.xml文件未添加到分支中,但默认情况下会添加。因此,当您hg update default时,Mercurial需要放弃pom.xml文件中的更改,并使用default中签入的版本覆盖它,但Mercurial 始终除非你真的非常坚持,否则拒绝丢弃数据。

你有两个简单的选择:

如果要保留对分支中的pom.xml所做的更改并将它们合并到存储在default分支中的pom.xml中,那么您可以执行以下操作:

  • hg add target/m2e-wtp/web-resources/META-INF/maven/org.bixin.dugsi/Dugsi_Manager/pom.xml
  • hg commit target/m2e-wtp/web-resources/META-INF/maven/org.bixin.dugsi/Dugsi_Manager/pom.xml

如果(相反)您想要放弃对分支中的pom.xml的更改,那么就这样做:

  • rm target/m2e-wtp/web-resources/META-INF/maven/org.bixin.dugsi/Dugsi_Manager/pom.xml

在其中任何一个之后你都可以做到:

  • hg update default
  • hg merge 20111225_Content_Build