title: What is the Mercurial equivalent for showing commits in one branch but not in another?
body: <p>In git, I can do the following:</p>
  
  <pre><code>git log foo ^bar
  </code></pre>
  
  <p>to show changesets in the branch <code>foo</code> but not in the branch <code>bar</code>. Is there a way to do that in Mercurial?</p>
  
  <p><strong>Edit:</strong> To explain a little more the use case. Say I have a branch in Mercurial (call it <code>foo</code>) that is branched off of <code>default</code>. What I want to know is what commits are in the <code>foo</code> branch, and therefore haven't been merged to <code>default</code>. Maybe I'm thinking of this the wrong way, but in git, I could start working on <code>foo</code>, merge to <code>master</code> and then work some more on <code>foo</code> and use the command above to see which commits had yet to be merged in.</p>
  
  <p>So a specific use case is knowing whether a branch has been completed merged into default. From using Mercurial, if I start a branch <code>foo</code> off of <code>default</code> to work on one feature, then leave it there so be merged and branch off of <code>foo</code> to create <code>bar</code>, which contains another feature built on top of things in <code>foo</code>, <code>foo</code> ends up being inactive because <code>bar</code> contains all the changesets in foo, but I may want to merge just the changesets in <code>foo</code> because I know those are good while <code>bar</code> is still in development. Hopefully that's helpful.</p>