Re:Adding Mercurial support to Gitlab
by marcinkuzminski on Thursday September 20, 2018 @04:48AM
(#18030739)
Use Mercurial histedit extension, this is a game changer on all operations. Works like git rebase -i but just better combined with phases. So most likely your not-yet-pushed commits are marked as draft, so you can run hg histedit.
We use this ALIAS:
histamend = !$HG histedit $(hg log -l1 -r '(draft() or secret()) and branch(.)' --template={rev})
This shows you option to drop/squash re-order/edit messages on all draft or secret commits in the current checkout branch
Local branches are fairly simple - use the phase command to mark your changesets as secret.
As for squashing... It's more complex, and not so easy, though doable, because Mercurial discourages it. (Though the solutions are on their wiki [0], and various extensions can simplify it for you.)
[0] https://www.mercurial-scm.org/wiki/ConcatenatingChangesets