title: Mercurial (hg) equivalent of git reset (--mixed or --soft)
body: <p>what would be an equivalent mercurial command (or workflow) for </p>
  
  <pre><code>git reset --mixed HEAD^
  </code></pre>
  
  <p>or </p>
  
  <pre><code>git reset --soft  HEAD^
  </code></pre>
  
  <p>i.e. I want leave the working tree intact but get the repository back into the state it was before the last commit. Surprisingly I did not find anything useful on stackoverflow or with google.</p>
  
  <p>Note that I cannot use </p>
  
  <pre><code>hg rollback
  </code></pre>
  
  <p>as I've done some history rewriting using HistEdit after the last commit.</p>
  
  <p><strong>Added to clarify:</strong>
  After some rebasing and history editing I had ended up with A&lt;--B&lt;--C. Then I used HistEdit to squash B and C together, obtaining A&lt;--C'. Now I want to split up the commit C' (I committed the wrong files in B). I figured the easiest way to do this was to get the repository back to state A (which technically never existed in the repository because of all the rebasing and history editing before hand) and the working tree to the state of C' and then doing two commits.</p>