# HG changeset patch # User Martin von Zweigbergk # Date 1521821301 25200 # Node ID c912eaf29eecdb50613e91cf9d87fe99217e1392 # Parent 1cfca1b4f518e0ca9c4917dcea3265ff942dfb3d compat: call current obsolete.createmarkers(), not one from load time Other extensions may wrap obsolete.createmarkers(). If they do, we should call their wrapped version. However, since f61a23a84dac (compat: add wrapper for obsolete.createmarkers() that accepts "operation" arg, 2018-03-16), we started storing the version of the function as it was when our compat module was loaded. This broke an extension we use internally at Google. diff -r 1cfca1b4f518 -r c912eaf29eec hgext3rd/evolve/compat.py --- a/hgext3rd/evolve/compat.py Thu Mar 22 09:53:42 2018 +0100 +++ b/hgext3rd/evolve/compat.py Fri Mar 23 09:08:21 2018 -0700 @@ -55,14 +55,16 @@ # Wrap obsolete.creatmarkers and make it accept but ignore "operation" argument # for hg < 4.3 -createmarkers = obsolete.createmarkers -originalcreatemarkers = createmarkers +originalcreatemarkers = obsolete.createmarkers while isinstance(originalcreatemarkers, functools.partial): originalcreatemarkers = originalcreatemarkers.func if originalcreatemarkers.__code__.co_argcount < 6: def createmarkers(repo, relations, flag=0, date=None, metadata=None, operation=None): return obsolete.createmarkers(repo, relations, flag, date, metadata) +else: + def createmarkers(*args, **kwargs): + return obsolete.createmarkers(*args, **kwargs) if not util.safehasattr(hg, '_copycache'): # exact copy of relevantmarkers as in Mercurial-176d1a0ce385 diff -r 1cfca1b4f518 -r c912eaf29eec hgext3rd/topic/compat.py --- a/hgext3rd/topic/compat.py Thu Mar 22 09:53:42 2018 +0100 +++ b/hgext3rd/topic/compat.py Fri Mar 23 09:08:21 2018 -0700 @@ -31,14 +31,16 @@ # Wrap obsolete.creatmarkers and make it accept but ignore "operation" argument # for hg < 4.3 -createmarkers = obsolete.createmarkers -originalcreatemarkers = createmarkers +originalcreatemarkers = obsolete.createmarkers while isinstance(originalcreatemarkers, functools.partial): originalcreatemarkers = originalcreatemarkers.func if originalcreatemarkers.__code__.co_argcount < 6: def createmarkers(repo, relations, flag=0, date=None, metadata=None, operation=None): return obsolete.createmarkers(repo, relations, flag, date, metadata) +else: + def createmarkers(*args, **kwargs): + return obsolete.createmarkers(*args, **kwargs) def startpager(ui, cmd): """function to start a pager in case ui.pager() exists"""