diff --git a/hgext3rd/obsshelve.py b/hgext3rd/obsshelve.py --- a/hgext3rd/obsshelve.py +++ b/hgext3rd/obsshelve.py @@ -423,9 +423,16 @@ shelvedfile(repo, name, 'oshelve').writeobsshelveinfo({ 'node': nodemod.hex(node) }) - cmdutil.export(repo.unfiltered(), [node], - fp=shelvedfile(repo, name, patchextension).opener('wb'), - opts=mdiff.diffopts(git=True)) + if util.safehasattr(cmdutil, 'exportfile'): + # Mercurial 4.6 and later + cmdutil.exportfile(repo.unfiltered(), [node], + shelvedfile(repo, name, patchextension).opener('wb'), + opts=mdiff.diffopts(git=True)) + else: + # Mercurial 4.5 and earlier + cmdutil.export(repo.unfiltered(), [node], + fp=shelvedfile(repo, name, patchextension).opener('wb'), + opts=mdiff.diffopts(git=True)) def _includeunknownfiles(repo, pats, opts, extra): s = repo.status(match=scmutil.match(repo[None], pats, opts),