# HG changeset patch # User Pierre-Yves David # Date 1315476513 -7200 # Node ID eb6a06d7eae3dd341894cf24d5502996eb9686ab # Parent 99c131e97bb388f4b3694fc89641fbd599988ac6 Make rebase set-obsolete relation diff -r 99c131e97bb3 -r eb6a06d7eae3 obsolete.py --- a/obsolete.py Wed Sep 07 18:39:02 2011 +0200 +++ b/obsolete.py Thu Sep 08 12:08:33 2011 +0200 @@ -10,6 +10,7 @@ from mercurial import context from mercurial import revset from mercurial import scmutil +from mercurial import extensions from mercurial.node import hex, bin # Patch changectx @@ -45,6 +46,12 @@ def extsetup(ui): revset.symbols["obsolete"] = revsetobsolete + try: + rebase = extensions.find('rebase') + if rebase: + extensions.wrapfunction(rebase, 'concludenode', concludenode) + except KeyError: + pass # rebase not found # New commands ############################# @@ -139,3 +146,13 @@ repo.__class__ = obsoletingrepo +### Other Extension compat +############################ + +def concludenode(orig, repo, rev, *args, **kwargs): + newrev = orig(repo, rev, *args, **kwargs) + oldnode = repo[rev].node() + newnode = repo[newrev].node() + repo.addobsolete(newnode, oldnode) + return newrev +