rebase: don't rebase obsolete commit whose successor is already rebased
This patch avoids unnecessary conflicts to resolve during rebase for the users
of changeset evolution.
This patch modifies rebase to skip obsolete commits if they are being rebased on
their successors.
It introduces a new rebase state 'revprecursor' 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:
not rebasing 14:
9ad579b4a5de "I", already in destination as 17:
fc37a630c901 "K"
check-code: forbid mutable value for default argument
default value are common to all call. Using mutable value is a classical source
of bug in Python. We forbid it.
The regexp (Courtesy of Matt Mackall) is only catching such value on the first
line of a definition, but that will be good enough for now.
httpconnection: remove a mutable default argument
Mutable default arguments are know to the state of California to cause bugs.
transplant: remove a mutable default argument
Mutable default arguments are know to the state of California to cause bugs.
mq: remove a mutable default argument
Mutable default arguments are know to the state of California to cause bugs. The
underlying function already handle "None" as an option value, so we do not need
to do anything else.
largefiles: remove a mutable default argument
Mutable default arguments are know to the state of California to cause bugs.
largefiles: remove a mutable default argument
Mutable default arguments are know to the state of California to cause bugs.
largefiles: remove a mutable default argument
Mutable default arguments are know to the state of California to cause bugs.
largefiles: remove a mutable default argument
Mutable default arguments are know to the state of California to cause bugs.
largefiles: remove a mutable default argument
Mutable default arguments are know to the state of California to cause bugs.