diff --git a/hgext3rd/fbamend/revsets.py b/hgext3rd/fbamend/revsets.py --- a/hgext3rd/fbamend/revsets.py +++ b/hgext3rd/fbamend/revsets.py @@ -35,28 +35,15 @@ s.sort() return subset & s -@revsetpredicate('successors(set)') -def successors(repo, subset, x): - """Immediate successors for given set""" - # getsuccessors: lookup node by precursor - getsuccessors = repo.obsstore.successors.get +@revsetpredicate('precursors(set)') +@revsetpredicate('predecessors(set)') +def predecessors(repo, subset, x): + """Immediate predecessors for given set""" + getpredecessors = repo.obsstore.predecessors.get def f(nodes): for n in nodes: - for m in getsuccessors(n, ()): - # m[0]: precursor, m[1]: successors - for n in m[1]: - yield n - return _calculateset(repo, subset, x, f) - -@revsetpredicate('precursors(set)') -def precursors(repo, subset, x): - """Immediate precursors for given set""" - # getsuccessors: lookup node by precursor - getprecursors = repo.obsstore.precursors.get - def f(nodes): - for n in nodes: - for m in getprecursors(n, ()): - # m[0]: precursor, m[1]: successors + for m in getpredecessors(n, ()): + # m[0]: predecessor, m[1]: successors yield m[0] return _calculateset(repo, subset, x, f) @@ -67,7 +54,8 @@ return _calculateset(repo, subset, x, f) @revsetpredicate('allprecursors(set)') -def allprecursors(repo, subset, x): - """All changesets which are precursors for given set, recursively""" - f = lambda nodes: obsutil.allprecursors(repo.obsstore, nodes) +@revsetpredicate('allpredecessors(set)') +def allpredecessors(repo, subset, x): + """All changesets which are predecessors for given set, recursively""" + f = lambda nodes: obsutil.allpredecessors(repo.obsstore, nodes) return _calculateset(repo, subset, x, f) diff --git a/hgext3rd/fbamend/unamend.py b/hgext3rd/fbamend/unamend.py --- a/hgext3rd/fbamend/unamend.py +++ b/hgext3rd/fbamend/unamend.py @@ -19,9 +19,9 @@ cmdtable = {} command = registrar.command(cmdtable) -def precursormarkers(ctx): - """obsolete marker marking this changeset as a successors""" - for data in ctx.repo().obsstore.precursors.get(ctx.node(), ()): +def predecessormarkers(ctx): + """yields the obsolete markers marking the given changeset as a successor""" + for data in ctx.repo().obsstore.predecessors.get(ctx.node(), ()): yield obsutil.marker(ctx.repo(), data) @command('^unamend', []) @@ -45,9 +45,9 @@ curctx = repo['.'] # identify the commit to which to unamend - markers = list(precursormarkers(curctx)) + markers = list(predecessormarkers(curctx)) if len(markers) != 1: - e = _("changeset must have one precursor, found %i precursors") + e = _("changeset must have one predecessor, found %i predecessors") raise error.Abort(e % len(markers)) prednode = markers[0].prednode() diff --git a/hgext3rd/inhibit.py b/hgext3rd/inhibit.py --- a/hgext3rd/inhibit.py +++ b/hgext3rd/inhibit.py @@ -16,19 +16,19 @@ def _obsoletedrevs(repo): """Redefine "obsolete()" revset. Previously, X is obsoleted if X appears as - a precursor in a marker. Now, X is obsoleted if X is a precursor in marker - M1, *and* is not a successor in marker M2 where M2.date >= M1.date. + a predecessor in a marker. Now, X is obsoleted if X is a predecessor in + marker M1, *and* is not a successor in marker M2 where M2.date >= M1.date. This allows undo to return to old hashes, and is correct as long as obsmarker is not exchanged. """ getnode = repo.changelog.node - markersbysuccessor = repo.obsstore.precursors.get - markersbyprecursor = repo.obsstore.successors.get + markersbysuccessor = repo.obsstore.predecessors.get + markersbypredecessor = repo.obsstore.successors.get result = set() for r in obsolete._mutablerevs(repo): n = getnode(r) - m1s = markersbyprecursor(n) + m1s = markersbypredecessor(n) m2s = markersbysuccessor(n) if m1s: if m2s: @@ -52,9 +52,9 @@ if date is None: date = util.makedate() # if prec is a successor of an existing marker, make default date bigger so - # the old marker won't revive the precursor accidentally. This helps tests + # the old marker won't revive the predecessor accidentally. This helps tests # where date are always (0, 0) - markers = self.precursors.get(prec) + markers = self.predecessors.get(prec) if markers: maxdate = max(m[4] for m in markers) maxdate = (maxdate[0] + 1, maxdate[1]) @@ -68,7 +68,7 @@ return False def _createmarkers(orig, repo, rels, *args, **kwargs): - # make precursor context unfiltered so parents() won't raise + # make predecessor context unfiltered so parents() won't raise unfi = repo.unfiltered() rels = [list(r) for r in rels] # make mutable for r in rels: @@ -109,7 +109,7 @@ # to write X -> X to revive X. extensions.wrapfunction(obsolete.obsstore, 'create', _obsstorecreate) - # make createmarkers use unfiltered precursor ctx, workarounds an issue + # make createmarkers use unfiltered predecessor ctx, workarounds an issue # that prec.parents() may raise FilteredIndexError. # NOTE: should be fixed upstream once hash-preserving obsstore is a thing. extensions.wrapfunction(obsolete, 'createmarkers', _createmarkers)