SourceTree can't amend last commit


When I commit to a mercurial repository, SourceTree commit window doesn't have the checkbox for amending the last commit.

How can I amend the last commit?



1 answer

1 accepted

4 votes
Accepted answer

Mecurial doesn't actually have the 'amend commit' feature, but it has another feature which you can use.

In Mercurial, you can 'strip' commits, which SourceTree exposes in the log view context menu. If you right-click a commit and choose 'Strip from here', it will destroy that commit at all of its children. However, if you check the box 'Do not modify working copy', you can keep all the changes, and they will become uncommited changes which you can then commit again. So this is similar to the idea of 'amend last commit' if you use it on the latest commit and check the 'Do not modify working copy' box (very important!), then commit again, although Mercurial does this a bit differently.

Thank you for the answer. I agree what you suggest would work. However, mercurial actually does support amend. Here's a quote from online help for hg commit command:

The --amend flag can be used to amend the parent of the working directory

with a new commit that contains the changes in the parent in addition to

those currently reported by "hg status", if there are any.

Perhaps, internally it indeed strips the parent commit and commits the combined changes of the parent commit and working directory, but it doesn't matter much for me what's behind the scene.

I assumed SourceTree would be able to do the same without me having to do two operations (strip and commit) instead of one (amend parent commit), but, apparently, it's not.

Ah OK, this appears to be a new feature in hg 2.2, it wasn't supported before that. We still support system Mercurial versions prior to 2.2 but we may add this option in future then.

Suggest an answer

Log in or Sign up to answer
Community showcase
Published Oct 23, 2018 in Sourcetree

Tip from the team: configure your repos for hosting goodness!

Supported Platforms macOS Windows We recently introduced support for additional hosting services such as GitHub Enterprise, GitLab (Cloud, Community Edition, Enterprise Edition), and...

1,112 views 4 2
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you