4

I'm looking for a GUI frontend to the Mercurial version control system. Right now I'm using TortoiseHg, which I dearly love, but it doesn't have any integrated GUI support for the evolve extension (e.g., folding multiple commits into one). I'm basically looking for something that is exactly like TortoiseHG but has good support for evolve.

I have also used SmartGit, which supports Hg but also doesn't appear to have a GUI for evolve. I have looked briefly at SourceTree but the fact that it now appears to require you to sign in with an Atlassian account is not attractive, and as far as I can see it doesn't have GUI support for evolve anyway.

I'm looking for a solution that is free of charge and ideally open source as well.

Also, hopefully this is obvious from the question, but just to be clear: I'm using Mercurial. I don't want to use Git. Git GUI frontends are not a solution.

1 Answer 1

3

TortoiseHg does have some integrated GUI support for evolve these days: the workbench shows obsolescence relationships and troubled revisions, and the "Strip" command becomes "Prune" when evolve is enabled.

It doesn't yet support all the new commands like hg fold, or even hg evolve, but you can add those yourself using Custom Tools.

For example, try merging this into your mercurial.ini to get a context menu command to evolve specific revs, and a global command to evolve everything in the repo:

[tortoisehg]
workbench.revdetails.custom-menu = evolve-rev
workbench.multipleselection.custom-menu = evolve-rev
workbench.custom-toolbar = evolve-any-all
workbench.pairselection.custom-menu = evolve-rev

[tortoisehg-tools]
evolve-any-all.command = hg evolve --any --all
evolve-any-all.enable = istrue
evolve-any-all.icon = hg-extensions
evolve-any-all.label = Evolve Any/All
evolve-any-all.showoutput = True
evolve-any-all.tooltip = Evolves all troubled revisions.
evolve-rev.command = hg evolve -r {REV}
evolve-rev.enable = istrue
evolve-rev.icon = hg-extensions
evolve-rev.label = Evolve
evolve-rev.showoutput = True
evolve-rev.tooltip = Evolves the selected troubled revision(s).

Also, remember that you can type any hg command in TortoiseHg's console pane, and one CLI command can often replace multiple GUI operations. For example, to rearrange and combine a big stack of commits, you can run hg histedit once instead of rebasing and folding each one separately.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.