tests/autodiff.py
changeset 35581 154754d1f137
parent 32337 46ba2cdda476
child 37251 7c0f40f4f7bf
equal deleted inserted replaced
35580:cb0db11f392d 35581:154754d1f137
    10 )
    10 )
    11 
    11 
    12 cmdtable = {}
    12 cmdtable = {}
    13 command = registrar.command(cmdtable)
    13 command = registrar.command(cmdtable)
    14 
    14 
    15 @command('autodiff',
    15 @command(b'autodiff',
    16     [('', 'git', '', 'git upgrade mode (yes/no/auto/warn/abort)')],
    16     [(b'', b'git', b'', b'git upgrade mode (yes/no/auto/warn/abort)')],
    17     '[OPTION]... [FILE]...')
    17     b'[OPTION]... [FILE]...')
    18 def autodiff(ui, repo, *pats, **opts):
    18 def autodiff(ui, repo, *pats, **opts):
    19     diffopts = patch.difffeatureopts(ui, opts)
    19     diffopts = patch.difffeatureopts(ui, opts)
    20     git = opts.get('git', 'no')
    20     git = opts.get(b'git', b'no')
    21     brokenfiles = set()
    21     brokenfiles = set()
    22     losedatafn = None
    22     losedatafn = None
    23     if git in ('yes', 'no'):
    23     if git in (b'yes', b'no'):
    24         diffopts.git = git == 'yes'
    24         diffopts.git = git == b'yes'
    25         diffopts.upgrade = False
    25         diffopts.upgrade = False
    26     elif git == 'auto':
    26     elif git == b'auto':
    27         diffopts.git = False
    27         diffopts.git = False
    28         diffopts.upgrade = True
    28         diffopts.upgrade = True
    29     elif git == 'warn':
    29     elif git == b'warn':
    30         diffopts.git = False
    30         diffopts.git = False
    31         diffopts.upgrade = True
    31         diffopts.upgrade = True
    32         def losedatafn(fn=None, **kwargs):
    32         def losedatafn(fn=None, **kwargs):
    33             brokenfiles.add(fn)
    33             brokenfiles.add(fn)
    34             return True
    34             return True
    35     elif git == 'abort':
    35     elif git == b'abort':
    36         diffopts.git = False
    36         diffopts.git = False
    37         diffopts.upgrade = True
    37         diffopts.upgrade = True
    38         def losedatafn(fn=None, **kwargs):
    38         def losedatafn(fn=None, **kwargs):
    39             raise error.Abort('losing data for %s' % fn)
    39             raise error.Abort(b'losing data for %s' % fn)
    40     else:
    40     else:
    41         raise error.Abort('--git must be yes, no or auto')
    41         raise error.Abort(b'--git must be yes, no or auto')
    42 
    42 
    43     node1, node2 = scmutil.revpair(repo, [])
    43     node1, node2 = scmutil.revpair(repo, [])
    44     m = scmutil.match(repo[node2], pats, opts)
    44     m = scmutil.match(repo[node2], pats, opts)
    45     it = patch.diff(repo, node1, node2, match=m, opts=diffopts,
    45     it = patch.diff(repo, node1, node2, match=m, opts=diffopts,
    46                     losedatafn=losedatafn)
    46                     losedatafn=losedatafn)
    47     for chunk in it:
    47     for chunk in it:
    48         ui.write(chunk)
    48         ui.write(chunk)
    49     for fn in sorted(brokenfiles):
    49     for fn in sorted(brokenfiles):
    50         ui.write(('data lost for: %s\n' % fn))
    50         ui.write((b'data lost for: %s\n' % fn))