##// END OF EJS Templates
py3: implement __bytes__ for committablectx...
py3: implement __bytes__ for committablectx Before this method, calling bytes on workingctx or memctx calls basectx.__bytes__ since the magic method was not defined for this class. When it calls the method from basectx class, it returns TypeError because None is passed into it. After this commit `hg update -C` works on Python 3 if eol is not enabled.

File last commit:

r32337:46ba2cdd default
r32643:1df98fc9 default
Show More
autodiff.py
50 lines | 1.4 KiB | text/x-python | PythonLexer
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 # Extension dedicated to test patch.diff() upgrade modes
Gregory Szorc
tests/autodiff.py: use absolute_import
r27281
from __future__ import absolute_import
from mercurial import (
error,
patch,
Yuya Nishihara
registrar: move cmdutil.command to registrar module (API)...
r32337 registrar,
Gregory Szorc
tests/autodiff.py: use absolute_import
r27281 scmutil,
)
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189
Gregory Szorc
tests: declare commands using decorator
r21254 cmdtable = {}
Yuya Nishihara
registrar: move cmdutil.command to registrar module (API)...
r32337 command = registrar.command(cmdtable)
Gregory Szorc
tests: declare commands using decorator
r21254
@command('autodiff',
[('', 'git', '', 'git upgrade mode (yes/no/auto/warn/abort)')],
'[OPTION]... [FILE]...')
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 def autodiff(ui, repo, *pats, **opts):
Siddharth Agarwal
tests/autodiff.py: explicitly only honor feature diffopts...
r23692 diffopts = patch.difffeatureopts(ui, opts)
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 git = opts.get('git', 'no')
brokenfiles = set()
losedatafn = None
if git in ('yes', 'no'):
diffopts.git = git == 'yes'
diffopts.upgrade = False
elif git == 'auto':
diffopts.git = False
diffopts.upgrade = True
elif git == 'warn':
diffopts.git = False
diffopts.upgrade = True
def losedatafn(fn=None, **kwargs):
brokenfiles.add(fn)
return True
elif git == 'abort':
diffopts.git = False
diffopts.upgrade = True
def losedatafn(fn=None, **kwargs):
Pierre-Yves David
error: get Abort from 'error' instead of 'util'...
r26587 raise error.Abort('losing data for %s' % fn)
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 else:
Pierre-Yves David
error: get Abort from 'error' instead of 'util'...
r26587 raise error.Abort('--git must be yes, no or auto')
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189
Matt Mackall
scmutil: move revsingle/pair/range from cmdutil...
r14319 node1, node2 = scmutil.revpair(repo, [])
Matt Mackall
scmutil: switch match users to supplying contexts...
r14671 m = scmutil.match(repo[node2], pats, opts)
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 it = patch.diff(repo, node1, node2, match=m, opts=diffopts,
losedatafn=losedatafn)
for chunk in it:
ui.write(chunk)
for fn in sorted(brokenfiles):
Matt Mackall
i18n: wrap false positives for translation detection
r17956 ui.write(('data lost for: %s\n' % fn))