title: How does the 3 way merge in Mercurial/Meld work?
body: <p>I'm working on a project where I have a commit that introduced a feature with major problems that weren't discovered immediately. Now I want to completely remove that revision while keeping the work following it but i'm having a hard time wrapping my head around this 3 way merge. Here is a simplified graph of my project.</p>
  
  <pre>
  o  changeset:   134:7f81764aa03a
  |  tag:         tip
  |  parent:      128:451d8a19edea
  |  summary:     Backed out changeset 451d8a19edea
  |
  | @  changeset:   133:5eefa40e2a29
  | |  summary:     (Change I need to keep keep)
  | |
  *snip 3 commits*
  | o  changeset:   129:5f6182a97d40
  |/   summary:     (Change I need to keep keep)
  |
  o  changeset:   128:451d8a19edea
  |  summary:     (Change that introduced a major problem)
  |
  o  changeset:   127:4f26dc55455d
  |  summary:     (summary doesn't matter for this question)
  </pre>
  
  <p>If I understand this correctly, r127 and r134 are exactly the same. When I <code>hg up -C -r 133</code> and then run <code>hg merge</code>, Meld pops up with three forms of one of my files: local, base, and other. local seems to be r133 but i'm having a hard time wrapping my head around what "base" and "other" mean.</p>