##// END OF EJS Templates
merge with default
merge with default

File last commit:

r48929:b74e1286 default
r49136:a44bb185 merge 6.0rc0 stable
Show More
autodiff.py
66 lines | 1.6 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,
Martin von Zweigbergk
errors: raise InputError from revpair() iff revset provided by the user...
r48929 logcmdutil,
Gregory Szorc
tests/autodiff.py: use absolute_import
r27281 patch,
Pulkit Goyal
py3: use pycompat.byteskwargs() in tests/autodiff.py...
r37386 pycompat,
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
Augie Fackler
formatting: blacken the codebase...
r43346
@command(
b'autodiff',
Pulkit Goyal
tests: make autodiff.py work on Python 3...
r35599 [(b'', b'git', b'', b'git upgrade mode (yes/no/auto/warn/abort)')],
Augie Fackler
formatting: blacken the codebase...
r43346 b'[OPTION]... [FILE]...',
)
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 def autodiff(ui, repo, *pats, **opts):
Pulkit Goyal
py3: use pycompat.byteskwargs() in tests/autodiff.py...
r37386 opts = pycompat.byteskwargs(opts)
Siddharth Agarwal
tests/autodiff.py: explicitly only honor feature diffopts...
r23692 diffopts = patch.difffeatureopts(ui, opts)
Pulkit Goyal
tests: make autodiff.py work on Python 3...
r35599 git = opts.get(b'git', b'no')
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 brokenfiles = set()
losedatafn = None
Pulkit Goyal
tests: make autodiff.py work on Python 3...
r35599 if git in (b'yes', b'no'):
diffopts.git = git == b'yes'
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 diffopts.upgrade = False
Pulkit Goyal
tests: make autodiff.py work on Python 3...
r35599 elif git == b'auto':
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 diffopts.git = False
diffopts.upgrade = True
Pulkit Goyal
tests: make autodiff.py work on Python 3...
r35599 elif git == b'warn':
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 diffopts.git = False
diffopts.upgrade = True
Augie Fackler
formatting: blacken the codebase...
r43346
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 def losedatafn(fn=None, **kwargs):
brokenfiles.add(fn)
return True
Augie Fackler
formatting: blacken the codebase...
r43346
Pulkit Goyal
tests: make autodiff.py work on Python 3...
r35599 elif git == b'abort':
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 diffopts.git = False
diffopts.upgrade = True
Augie Fackler
formatting: blacken the codebase...
r43346
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 def losedatafn(fn=None, **kwargs):
Pulkit Goyal
tests: make autodiff.py work on Python 3...
r35599 raise error.Abort(b'losing data for %s' % fn)
Augie Fackler
formatting: blacken the codebase...
r43346
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 else:
Pulkit Goyal
tests: make autodiff.py work on Python 3...
r35599 raise error.Abort(b'--git must be yes, no or auto')
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189
Martin von Zweigbergk
errors: raise InputError from revpair() iff revset provided by the user...
r48929 ctx1, ctx2 = logcmdutil.revpair(repo, [])
Martin von Zweigbergk
tests: use context-return revpair() in autodiff...
r37275 m = scmutil.match(ctx2, pats, opts)
Augie Fackler
formatting: blacken the codebase...
r43346 it = patch.diff(
repo,
ctx1.node(),
ctx2.node(),
match=m,
opts=diffopts,
losedatafn=losedatafn,
)
Patrick Mezard
patch: support diff data loss detection and upgrade...
r10189 for chunk in it:
ui.write(chunk)
for fn in sorted(brokenfiles):
Pulkit Goyal
tests: make autodiff.py work on Python 3...
r35599 ui.write((b'data lost for: %s\n' % fn))