TortoiseHg在合并期间删除添加的文件

时间:2015-08-11 23:50:21

标签: mercurial tortoisehg branching-and-merging

我有一个存储库,其中有两个分支 MAIN FEATURE1 。我分支后不久,我需要修复错误,然后用版本号标记 MAIN 。这些是分支后 MAIN 的唯一更改。我一直在 FEATURE1 工作,并添加了几个文件。

1--2----4--5
    \
     3--------6--7--8
  • 3 - 创建分支
  • 4 - 错误修复
  • 5 - 添加标签
  • 6-8 - 功能更改
  

注意错误修复与功能之间存在一个相互冲突的变化。

现在,我的功能已经完成,我想将 FEATURE1 (8)合并到 MAIN (5)中。但是当我执行合并时,我的任何更改都不会显示在 MAIN 分支中。

当我在没有提交的情况下执行合并时,我注意到了一些事情:

  • 源分支( FEATURE1 )中添加的所有文件都标记为已删除。
  • 有很多.orig个文件(我不知道这些是什么)。这些标记为?(未知操作),未提交。
  • 现有文件已标记为' M' (修改)按预期,但不会迁移变更。

它几乎就像将 MAIN 作为来源而 FEATURE1 作为目的地,但我确定我&# 39; m合并到 MAIN 。我更新为 MAIN (5),右键单击 FEATURE1 (8),然后选择合并到本地... 。生成的分支按预期显示为 MAIN 的一部分。

我之前从未使用过TortoiseHg或Mercurial。我已经习惯了TFS,而且我觉得我有相反的行为。

基本上,我希望我在 FEATURE1 中所做的更改出现在 MAIN 中。

1 个答案:

答案 0 :(得分:0)

显然,TortoiseHg工作正常。我的沮丧是误读UI的结果。

每当您更新到TortoiseHg中的其他修订版时,它会为您提供一个对话框,其中包含一个复选框,允许您放弃当前分支中未提交的更改。

  

放弃本地更改,不备份(-C / - 清除)

合并时,信息类似但含义非常不同。

  

放弃合并目标(其他)修订版

的所有更改

虽然第一个意味着您要撤消未提交的更改,但第二个意味着您要合并分支而不会带来任何更改。

另一方面,我无法弄清楚为什么会有这个功能。为什么要在没有迁移更改的情况下合并分支?关闭分支似乎更容易。