Mercurial > public > mercurial-scm > hg-stable
diff mercurial/obsutil.py @ 36959:b9bbcf9ffac1
obsolete: move marker flags to obsutil
Evolve extension expects to have obsolete.bumpedfix (imported in
hgext3rd/evolve/evolvecmd.py), so we provide it.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Tue, 13 Mar 2018 20:34:38 +0800 |
parents | c6061cadb400 |
children | efc4fb344c05 |
line wrap: on
line diff
--- a/mercurial/obsutil.py Wed Feb 21 17:21:10 2018 +0100 +++ b/mercurial/obsutil.py Tue Mar 13 20:34:38 2018 +0800 @@ -17,6 +17,39 @@ ) from .utils import dateutil +### obsolescence marker flag + +## bumpedfix flag +# +# When a changeset A' succeed to a changeset A which became public, we call A' +# "bumped" because it's a successors of a public changesets +# +# o A' (bumped) +# |`: +# | o A +# |/ +# o Z +# +# The way to solve this situation is to create a new changeset Ad as children +# of A. This changeset have the same content than A'. So the diff from A to A' +# is the same than the diff from A to Ad. Ad is marked as a successors of A' +# +# o Ad +# |`: +# | x A' +# |'| +# o | A +# |/ +# o Z +# +# But by transitivity Ad is also a successors of A. To avoid having Ad marked +# as bumped too, we add the `bumpedfix` flag to the marker. <A', (Ad,)>. +# This flag mean that the successors express the changes between the public and +# bumped version and fix the situation, breaking the transitivity of +# "bumped" here. +bumpedfix = 1 +usingsha256 = 2 + class marker(object): """Wrap obsolete marker raw data"""