Mercurial > hg
view tests/autodiff.py @ 39770:7aa440222323
localrepo: enable ellipsis flag on revlogs when repo is narrow
If the narrow requirement is present, revlogs created for that
repository will have the ellipsis flag enabled.
This is the same behavior that the narrow extension exhibits. Except
the ellipsis flag won't be enabled on repos/revlogs that don't have
the narrow requirement.
Differential Revision: https://phab.mercurial-scm.org/D4648
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 13 Sep 2018 15:57:18 -0700 |
parents | cdccfe20eed7 |
children | 2372284d9457 |
line wrap: on
line source
# Extension dedicated to test patch.diff() upgrade modes from __future__ import absolute_import from mercurial import ( error, patch, pycompat, registrar, scmutil, ) cmdtable = {} command = registrar.command(cmdtable) @command(b'autodiff', [(b'', b'git', b'', b'git upgrade mode (yes/no/auto/warn/abort)')], b'[OPTION]... [FILE]...') def autodiff(ui, repo, *pats, **opts): opts = pycompat.byteskwargs(opts) diffopts = patch.difffeatureopts(ui, opts) git = opts.get(b'git', b'no') brokenfiles = set() losedatafn = None if git in (b'yes', b'no'): diffopts.git = git == b'yes' diffopts.upgrade = False elif git == b'auto': diffopts.git = False diffopts.upgrade = True elif git == b'warn': diffopts.git = False diffopts.upgrade = True def losedatafn(fn=None, **kwargs): brokenfiles.add(fn) return True elif git == b'abort': diffopts.git = False diffopts.upgrade = True def losedatafn(fn=None, **kwargs): raise error.Abort(b'losing data for %s' % fn) else: raise error.Abort(b'--git must be yes, no or auto') ctx1, ctx2 = scmutil.revpair(repo, []) m = scmutil.match(ctx2, pats, opts) it = patch.diff(repo, ctx1.node(), ctx2.node(), match=m, opts=diffopts, losedatafn=losedatafn) for chunk in it: ui.write(chunk) for fn in sorted(brokenfiles): ui.write((b'data lost for: %s\n' % fn))