comparison mercurial/debugcommands.py @ 33101:b257aaa0743a

py3: use r'' to prevent the addition of b'' by transformer There are cases in opts handling in debugcommands.py where we don't need to convert opts keys back to bytes as there are some handful cases and no other function using opts value. Using r'', we prevent the transformer to add a b'' which will keep the value str.
author Pulkit Goyal <7895pulkit@gmail.com>
date Tue, 27 Jun 2017 00:15:56 +0530
parents 05906b8e1d23
children 1b6946f87c50
comparison
equal deleted inserted replaced
33100:05906b8e1d23 33101:b257aaa0743a
324 def _debugbundle2(ui, gen, all=None, **opts): 324 def _debugbundle2(ui, gen, all=None, **opts):
325 """lists the contents of a bundle2""" 325 """lists the contents of a bundle2"""
326 if not isinstance(gen, bundle2.unbundle20): 326 if not isinstance(gen, bundle2.unbundle20):
327 raise error.Abort(_('not a bundle2 file')) 327 raise error.Abort(_('not a bundle2 file'))
328 ui.write(('Stream params: %s\n' % repr(gen.params))) 328 ui.write(('Stream params: %s\n' % repr(gen.params)))
329 parttypes = opts.get('part_type', []) 329 parttypes = opts.get(r'part_type', [])
330 for part in gen.iterparts(): 330 for part in gen.iterparts():
331 if parttypes and part.type not in parttypes: 331 if parttypes and part.type not in parttypes:
332 continue 332 continue
333 ui.write('%s -- %r\n' % (part.type, repr(part.params))) 333 ui.write('%s -- %r\n' % (part.type, repr(part.params)))
334 if part.type == 'changegroup': 334 if part.type == 'changegroup':
391 [('', 'style', None, _('show all configured styles'))], 391 [('', 'style', None, _('show all configured styles'))],
392 'hg debugcolor') 392 'hg debugcolor')
393 def debugcolor(ui, repo, **opts): 393 def debugcolor(ui, repo, **opts):
394 """show available color, effects or style""" 394 """show available color, effects or style"""
395 ui.write(('color mode: %s\n') % ui._colormode) 395 ui.write(('color mode: %s\n') % ui._colormode)
396 if opts.get('style'): 396 if opts.get(r'style'):
397 return _debugdisplaystyle(ui) 397 return _debugdisplaystyle(ui)
398 else: 398 else:
399 return _debugdisplaycolor(ui) 399 return _debugdisplaycolor(ui)
400 400
401 def _debugdisplaycolor(ui): 401 def _debugdisplaycolor(ui):
459 If you pass a revlog index, the revlog's DAG is emitted. If you list 459 If you pass a revlog index, the revlog's DAG is emitted. If you list
460 revision numbers, they get labeled in the output as rN. 460 revision numbers, they get labeled in the output as rN.
461 461
462 Otherwise, the changelog DAG of the current repo is emitted. 462 Otherwise, the changelog DAG of the current repo is emitted.
463 """ 463 """
464 spaces = opts.get('spaces') 464 spaces = opts.get(r'spaces')
465 dots = opts.get('dots') 465 dots = opts.get(r'dots')
466 if file_: 466 if file_:
467 rlog = revlog.revlog(vfsmod.vfs(pycompat.getcwd(), audit=False), 467 rlog = revlog.revlog(vfsmod.vfs(pycompat.getcwd(), audit=False),
468 file_) 468 file_)
469 revs = set((int(r) for r in revs)) 469 revs = set((int(r) for r in revs))
470 def events(): 470 def events():
473 if p != -1)) 473 if p != -1))
474 if r in revs: 474 if r in revs:
475 yield 'l', (r, "r%i" % r) 475 yield 'l', (r, "r%i" % r)
476 elif repo: 476 elif repo:
477 cl = repo.changelog 477 cl = repo.changelog
478 tags = opts.get('tags') 478 tags = opts.get(r'tags')
479 branches = opts.get('branches') 479 branches = opts.get(r'branches')
480 if tags: 480 if tags:
481 labels = {} 481 labels = {}
482 for l, n in repo.tags().items(): 482 for l, n in repo.tags().items():
483 labels.setdefault(cl.rev(n), []).append(l) 483 labels.setdefault(cl.rev(n), []).append(l)
484 def events(): 484 def events():
529 [('e', 'extended', None, _('try extended date formats'))], 529 [('e', 'extended', None, _('try extended date formats'))],
530 _('[-e] DATE [RANGE]'), 530 _('[-e] DATE [RANGE]'),
531 norepo=True, optionalrepo=True) 531 norepo=True, optionalrepo=True)
532 def debugdate(ui, date, range=None, **opts): 532 def debugdate(ui, date, range=None, **opts):
533 """parse and display a date""" 533 """parse and display a date"""
534 if opts["extended"]: 534 if opts[r"extended"]:
535 d = util.parsedate(date, util.extendeddateformats) 535 d = util.parsedate(date, util.extendeddateformats)
536 else: 536 else:
537 d = util.parsedate(date) 537 d = util.parsedate(date)
538 ui.write(("internal: %s %s\n") % d) 538 ui.write(("internal: %s %s\n") % d)
539 ui.write(("standard: %s\n") % util.datestr(d)) 539 ui.write(("standard: %s\n") % util.datestr(d))
648 ('', 'datesort', None, _('sort by saved mtime'))], 648 ('', 'datesort', None, _('sort by saved mtime'))],
649 _('[OPTION]...')) 649 _('[OPTION]...'))
650 def debugstate(ui, repo, **opts): 650 def debugstate(ui, repo, **opts):
651 """show the contents of the current dirstate""" 651 """show the contents of the current dirstate"""
652 652
653 nodates = opts.get('nodates') 653 nodates = opts.get(r'nodates')
654 datesort = opts.get('datesort') 654 datesort = opts.get(r'datesort')
655 655
656 timestr = "" 656 timestr = ""
657 if datesort: 657 if datesort:
658 keyfunc = lambda x: (x[1][3], x[0]) # sort by mtime, then by filename 658 keyfunc = lambda x: (x[1][3], x[0]) # sort by mtime, then by filename
659 else: 659 else:
790 @command('debugfileset', 790 @command('debugfileset',
791 [('r', 'rev', '', _('apply the filespec on this revision'), _('REV'))], 791 [('r', 'rev', '', _('apply the filespec on this revision'), _('REV'))],
792 _('[-r REV] FILESPEC')) 792 _('[-r REV] FILESPEC'))
793 def debugfileset(ui, repo, expr, **opts): 793 def debugfileset(ui, repo, expr, **opts):
794 '''parse and apply a fileset specification''' 794 '''parse and apply a fileset specification'''
795 ctx = scmutil.revsingle(repo, opts.get('rev'), None) 795 ctx = scmutil.revsingle(repo, opts.get(r'rev'), None)
796 if ui.verbose: 796 if ui.verbose:
797 tree = fileset.parse(expr) 797 tree = fileset.parse(expr)
798 ui.note(fileset.prettyformat(tree), "\n") 798 ui.note(fileset.prettyformat(tree), "\n")
799 799
800 for f in ctx.getfileset(expr): 800 for f in ctx.getfileset(expr):
831 repo = hg.peer(ui, opts, repopath) 831 repo = hg.peer(ui, opts, repopath)
832 if not repo.capable('getbundle'): 832 if not repo.capable('getbundle'):
833 raise error.Abort("getbundle() not supported by target repository") 833 raise error.Abort("getbundle() not supported by target repository")
834 args = {} 834 args = {}
835 if common: 835 if common:
836 args['common'] = [bin(s) for s in common] 836 args[r'common'] = [bin(s) for s in common]
837 if head: 837 if head:
838 args['heads'] = [bin(s) for s in head] 838 args[r'heads'] = [bin(s) for s in head]
839 # TODO: get desired bundlecaps from command line. 839 # TODO: get desired bundlecaps from command line.
840 args['bundlecaps'] = None 840 args[r'bundlecaps'] = None
841 bundle = repo.getbundle('debug', **args) 841 bundle = repo.getbundle('debug', **args)
842 842
843 bundletype = opts.get('type', 'bzip2').lower() 843 bundletype = opts.get('type', 'bzip2').lower()
844 btypes = {'none': 'HG10UN', 844 btypes = {'none': 'HG10UN',
845 'bzip2': 'HG10BZ', 845 'bzip2': 'HG10BZ',
1174 1174
1175 Returns 0 if no locks are held. 1175 Returns 0 if no locks are held.
1176 1176
1177 """ 1177 """
1178 1178
1179 if opts.get('force_lock'): 1179 if opts.get(r'force_lock'):
1180 repo.svfs.unlink('lock') 1180 repo.svfs.unlink('lock')
1181 if opts.get('force_wlock'): 1181 if opts.get(r'force_wlock'):
1182 repo.vfs.unlink('wlock') 1182 repo.vfs.unlink('wlock')
1183 if opts.get('force_lock') or opts.get('force_lock'): 1183 if opts.get(r'force_lock') or opts.get(r'force_lock'):
1184 return 0 1184 return 0
1185 1185
1186 now = time.time() 1186 now = time.time()
1187 held = 0 1187 held = 0
1188 1188
1483 spec = spec[len(rootdir):] 1483 spec = spec[len(rootdir):]
1484 fixpaths = pycompat.ossep != '/' 1484 fixpaths = pycompat.ossep != '/'
1485 if fixpaths: 1485 if fixpaths:
1486 spec = spec.replace(pycompat.ossep, '/') 1486 spec = spec.replace(pycompat.ossep, '/')
1487 speclen = len(spec) 1487 speclen = len(spec)
1488 fullpaths = opts['full'] 1488 fullpaths = opts[r'full']
1489 files, dirs = set(), set() 1489 files, dirs = set(), set()
1490 adddir, addfile = dirs.add, files.add 1490 adddir, addfile = dirs.add, files.add
1491 for f, st in dirstate.iteritems(): 1491 for f, st in dirstate.iteritems():
1492 if f.startswith(spec) and st[0] in acceptable: 1492 if f.startswith(spec) and st[0] in acceptable:
1493 if fixpaths: 1493 if fixpaths:
1501 else: 1501 else:
1502 addfile(f) 1502 addfile(f)
1503 return files, dirs 1503 return files, dirs
1504 1504
1505 acceptable = '' 1505 acceptable = ''
1506 if opts['normal']: 1506 if opts[r'normal']:
1507 acceptable += 'nm' 1507 acceptable += 'nm'
1508 if opts['added']: 1508 if opts[r'added']:
1509 acceptable += 'a' 1509 acceptable += 'a'
1510 if opts['removed']: 1510 if opts[r'removed']:
1511 acceptable += 'r' 1511 acceptable += 'r'
1512 cwd = repo.getcwd() 1512 cwd = repo.getcwd()
1513 if not specs: 1513 if not specs:
1514 specs = ['.'] 1514 specs = ['.']
1515 1515
1669 ctx = scmutil.revsingle(repo, rev) 1669 ctx = scmutil.revsingle(repo, rev)
1670 with repo.wlock(): 1670 with repo.wlock():
1671 dirstate = repo.dirstate 1671 dirstate = repo.dirstate
1672 changedfiles = None 1672 changedfiles = None
1673 # See command doc for what minimal does. 1673 # See command doc for what minimal does.
1674 if opts.get('minimal'): 1674 if opts.get(r'minimal'):
1675 manifestfiles = set(ctx.manifest().keys()) 1675 manifestfiles = set(ctx.manifest().keys())
1676 dirstatefiles = set(dirstate) 1676 dirstatefiles = set(dirstate)
1677 manifestonly = manifestfiles - dirstatefiles 1677 manifestonly = manifestfiles - dirstatefiles
1678 dsonly = dirstatefiles - manifestfiles 1678 dsonly = dirstatefiles - manifestfiles
1679 dsnotadded = set(f for f in dsonly if dirstate[f] != 'a') 1679 dsnotadded = set(f for f in dsonly if dirstate[f] != 'a')
2132 template. 2132 template.
2133 2133
2134 Use --verbose to print the parsed tree. 2134 Use --verbose to print the parsed tree.
2135 """ 2135 """
2136 revs = None 2136 revs = None
2137 if opts['rev']: 2137 if opts[r'rev']:
2138 if repo is None: 2138 if repo is None:
2139 raise error.RepoError(_('there is no Mercurial repository here ' 2139 raise error.RepoError(_('there is no Mercurial repository here '
2140 '(.hg not found)')) 2140 '(.hg not found)'))
2141 revs = scmutil.revrange(repo, opts['rev']) 2141 revs = scmutil.revrange(repo, opts[r'rev'])
2142 2142
2143 props = {} 2143 props = {}
2144 for d in opts['define']: 2144 for d in opts[r'define']:
2145 try: 2145 try:
2146 k, v = (e.strip() for e in d.split('=', 1)) 2146 k, v = (e.strip() for e in d.split('=', 1))
2147 if not k or k == 'ui': 2147 if not k or k == 'ui':
2148 raise ValueError 2148 raise ValueError
2149 props[k] = v 2149 props[k] = v