rebase: refactoring to avoid repetition of expression
This patch removes the repetition of "(revignored, revprecursor, revpruned)"
and replaces its occurences with the more legible "revskipped".
rebase: remove an unused todo
Since we handled skipping obsolete revs when it is relevant, this todo is no
longer useful. We replace the comment with two useful comments.
rebase: don't rebase obsolete commits with no successor
This patch avoids unnecessary conflicts to resolve during rebase for the users
of changeset evolution.
This patch modifies rebase to skip obsolete commits with no successor.
It introduces a new rebase state 'revpruned' for these revisions that are
being skipped and a new message to inform the user of what is happening.
This feature is gated behind the config flag experimental.rebaseskipobsolete
When an obsolete commit is skipped, the output is:
note: not rebasing 7:
360bbaa7d3ce "O", it has no successor
rebase: fix a typo in test-rebase-obsolete
We had left a lonely single quote where it shouldn't be!
hgweb: unify import style of error classes
It will be enforced by the import checker.
hgweb: do not import templatefilters.revescape and websub as symbol
It will be enforced by the import checker.
mergestate: move _read() call to read constructor
With this patch, mergestate.clean() will no longer abort when it encounters an
unsupported merge type. However we hold off on testing it until backwards
compatibility is in place.