Mercurial > hg
view tests/autodiff.py @ 22168:1b9d0dc1bbe1 stable
largefiles: drop setting lfstatus in overridelog (issue4334)
lfstatus should only be True for operations where we want standins to be
printed out. We explicitly do not want that for historical operations like log.
Other historical operations like hg diff -r A -r B don't print out standins
either.
This is required to fix issue4334, but doesn't fix anything by itself. That's
why there aren't any tests accompanying this patch.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Wed, 13 Aug 2014 15:13:50 -0700 |
parents | 51e5c793a9f4 |
children | f78192115229 |
line wrap: on
line source
# Extension dedicated to test patch.diff() upgrade modes # # from mercurial import cmdutil, scmutil, patch, util cmdtable = {} command = cmdutil.command(cmdtable) @command('autodiff', [('', 'git', '', 'git upgrade mode (yes/no/auto/warn/abort)')], '[OPTION]... [FILE]...') def autodiff(ui, repo, *pats, **opts): diffopts = patch.diffopts(ui, opts) 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): raise util.Abort('losing data for %s' % fn) else: raise util.Abort('--git must be yes, no or auto') node1, node2 = scmutil.revpair(repo, []) m = scmutil.match(repo[node2], pats, opts) it = patch.diff(repo, node1, node2, match=m, opts=diffopts, losedatafn=losedatafn) for chunk in it: ui.write(chunk) for fn in sorted(brokenfiles): ui.write(('data lost for: %s\n' % fn))