Mercurial > public > mercurial-scm > hg-stable
diff mercurial/logcmdutil.py @ 43077:687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Done with
python3.7 contrib/byteify-strings.py -i $(hg files 'set:mercurial/**.py - mercurial/thirdparty/** + hgext/**.py - hgext/fsmonitor/pywatchman/** - mercurial/__init__.py')
black -l 80 -t py33 -S $(hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**" - hgext/fsmonitor/pywatchman/**')
# skip-blame mass-reformatting only
Differential Revision: https://phab.mercurial-scm.org/D6972
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 06 Oct 2019 09:48:39 -0400 |
parents | 2372284d9457 |
children | 90b9a7e06c2c |
line wrap: on
line diff
--- a/mercurial/logcmdutil.py Sun Oct 06 09:45:02 2019 -0400 +++ b/mercurial/logcmdutil.py Sun Oct 06 09:48:39 2019 -0400 @@ -44,14 +44,14 @@ def getlimit(opts): """get the log limit according to option -l/--limit""" - limit = opts.get('limit') + limit = opts.get(b'limit') if limit: try: limit = int(limit) except ValueError: - raise error.Abort(_('limit must be a positive integer')) + raise error.Abort(_(b'limit must be a positive integer')) if limit <= 0: - raise error.Abort(_('limit must be positive')) + raise error.Abort(_(b'limit must be positive')) else: limit = None return limit @@ -68,8 +68,8 @@ stat=False, fp=None, graphwidth=0, - prefix='', - root='', + prefix=b'', + root=b'', listsubrepos=False, hunksfilterfn=None, ): @@ -79,7 +79,7 @@ if root: relroot = pathutil.canonpath(repo.root, repo.getcwd(), root) else: - relroot = '' + relroot = b'' copysourcematch = None def compose(f, g): @@ -88,31 +88,31 @@ def pathfn(f): return posixpath.join(prefix, f) - if relroot != '': + if relroot != b'': # XXX relative roots currently don't work if the root is within a # subrepo uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) uirelroot = uipathfn(pathfn(relroot)) - relroot += '/' + relroot += b'/' for matchroot in match.files(): if not matchroot.startswith(relroot): ui.warn( - _('warning: %s not inside relative root %s\n') + _(b'warning: %s not inside relative root %s\n') % (uipathfn(pathfn(matchroot)), uirelroot) ) - relrootmatch = scmutil.match(ctx2, pats=[relroot], default='path') + relrootmatch = scmutil.match(ctx2, pats=[relroot], default=b'path') match = matchmod.intersectmatchers(match, relrootmatch) copysourcematch = relrootmatch checkroot = repo.ui.configbool( - 'devel', 'all-warnings' - ) or repo.ui.configbool('devel', 'check-relroot') + b'devel', b'all-warnings' + ) or repo.ui.configbool(b'devel', b'check-relroot') def relrootpathfn(f): if checkroot and not f.startswith(relroot): raise AssertionError( - "file %s doesn't start with relroot %s" % (f, relroot) + b"file %s doesn't start with relroot %s" % (f, relroot) ) return f[len(relroot) :] @@ -214,14 +214,14 @@ def changesetlabels(ctx): - labels = ['log.changeset', 'changeset.%s' % ctx.phasestr()] + labels = [b'log.changeset', b'changeset.%s' % ctx.phasestr()] if ctx.obsolete(): - labels.append('changeset.obsolete') + labels.append(b'changeset.obsolete') if ctx.isunstable(): - labels.append('changeset.unstable') + labels.append(b'changeset.unstable') for instability in ctx.instabilities(): - labels.append('instability.%s' % instability) - return ' '.join(labels) + labels.append(b'instability.%s' % instability) + return b' '.join(labels) class changesetprinter(object): @@ -233,8 +233,8 @@ self.buffered = buffered self._differ = differ or changesetdiffer() self._diffopts = patch.diffallopts(ui, diffopts) - self._includestat = diffopts and diffopts.get('stat') - self._includediff = diffopts and diffopts.get('patch') + self._includestat = diffopts and diffopts.get(b'stat') + self._includediff = diffopts and diffopts.get(b'patch') self.header = {} self.hunk = {} self.lastheader = None @@ -269,17 +269,17 @@ def _show(self, ctx, copies, props): '''show a single changeset or file revision''' changenode = ctx.node() - graphwidth = props.get('graphwidth', 0) + graphwidth = props.get(b'graphwidth', 0) if self.ui.quiet: self.ui.write( - "%s\n" % scmutil.formatchangeid(ctx), label='log.node' + b"%s\n" % scmutil.formatchangeid(ctx), label=b'log.node' ) return columns = self._columns self.ui.write( - columns['changeset'] % scmutil.formatchangeid(ctx), + columns[b'changeset'] % scmutil.formatchangeid(ctx), label=changesetlabels(ctx), ) @@ -287,24 +287,26 @@ # compatibility branch = ctx.branch() # don't show the default branch name - if branch != 'default': - self.ui.write(columns['branch'] % branch, label='log.branch') + if branch != b'default': + self.ui.write(columns[b'branch'] % branch, label=b'log.branch') for nsname, ns in self.repo.names.iteritems(): # branches has special logic already handled above, so here we just # skip it - if nsname == 'branches': + if nsname == b'branches': continue # we will use the templatename as the color name since those two # should be the same for name in ns.names(self.repo, changenode): - self.ui.write(ns.logfmt % name, label='log.%s' % ns.colorname) + self.ui.write(ns.logfmt % name, label=b'log.%s' % ns.colorname) if self.ui.debugflag: - self.ui.write(columns['phase'] % ctx.phasestr(), label='log.phase') + self.ui.write( + columns[b'phase'] % ctx.phasestr(), label=b'log.phase' + ) for pctx in scmutil.meaningfulparents(self.repo, ctx): - label = 'log.parent changeset.%s' % pctx.phasestr() + label = b'log.parent changeset.%s' % pctx.phasestr() self.ui.write( - columns['parent'] % scmutil.formatchangeid(pctx), label=label + columns[b'parent'] % scmutil.formatchangeid(pctx), label=label ) if self.ui.debugflag: @@ -315,20 +317,20 @@ else: mrev = self.repo.manifestlog.rev(mnode) self.ui.write( - columns['manifest'] + columns[b'manifest'] % scmutil.formatrevnode(self.ui, mrev, mnode), - label='ui.debug log.manifest', + label=b'ui.debug log.manifest', ) - self.ui.write(columns['user'] % ctx.user(), label='log.user') + self.ui.write(columns[b'user'] % ctx.user(), label=b'log.user') self.ui.write( - columns['date'] % dateutil.datestr(ctx.date()), label='log.date' + columns[b'date'] % dateutil.datestr(ctx.date()), label=b'log.date' ) if ctx.isunstable(): instabilities = ctx.instabilities() self.ui.write( - columns['instability'] % ', '.join(instabilities), - label='log.instability', + columns[b'instability'] % b', '.join(instabilities), + label=b'log.instability', ) elif ctx.obsolete(): @@ -338,45 +340,46 @@ if self.ui.debugflag: files = ctx.p1().status(ctx)[:3] - for key, value in zip(['files', 'files+', 'files-'], files): + for key, value in zip([b'files', b'files+', b'files-'], files): if value: self.ui.write( - columns[key] % " ".join(value), - label='ui.debug log.files', + columns[key] % b" ".join(value), + label=b'ui.debug log.files', ) elif ctx.files() and self.ui.verbose: self.ui.write( - columns['files'] % " ".join(ctx.files()), - label='ui.note log.files', + columns[b'files'] % b" ".join(ctx.files()), + label=b'ui.note log.files', ) if copies and self.ui.verbose: - copies = ['%s (%s)' % c for c in copies] + copies = [b'%s (%s)' % c for c in copies] self.ui.write( - columns['copies'] % ' '.join(copies), label='ui.note log.copies' + columns[b'copies'] % b' '.join(copies), + label=b'ui.note log.copies', ) extra = ctx.extra() if extra and self.ui.debugflag: for key, value in sorted(extra.items()): self.ui.write( - columns['extra'] % (key, stringutil.escapestr(value)), - label='ui.debug log.extra', + columns[b'extra'] % (key, stringutil.escapestr(value)), + label=b'ui.debug log.extra', ) description = ctx.description().strip() if description: if self.ui.verbose: self.ui.write( - _("description:\n"), label='ui.note log.description' + _(b"description:\n"), label=b'ui.note log.description' ) - self.ui.write(description, label='ui.note log.description') - self.ui.write("\n\n") + self.ui.write(description, label=b'ui.note log.description') + self.ui.write(b"\n\n") else: self.ui.write( - columns['summary'] % description.splitlines()[0], - label='log.summary', + columns[b'summary'] % description.splitlines()[0], + label=b'log.summary', ) - self.ui.write("\n") + self.ui.write(b"\n") self._showpatch(ctx, graphwidth) @@ -385,16 +388,17 @@ tres = formatter.templateresources(self.repo.ui, self.repo) t = formatter.maketemplater( self.repo.ui, - '{join(obsfate, "\n")}', + b'{join(obsfate, "\n")}', defaults=templatekw.keywords, resources=tres, ) - obsfate = t.renderdefault({'ctx': ctx}).splitlines() + obsfate = t.renderdefault({b'ctx': ctx}).splitlines() if obsfate: for obsfateline in obsfate: self.ui.write( - self._columns['obsolete'] % obsfateline, label='log.obsfate' + self._columns[b'obsolete'] % obsfateline, + label=b'log.obsfate', ) def _exthook(self, ctx): @@ -407,13 +411,13 @@ self.ui, ctx, self._diffopts, graphwidth, stat=True ) if self._includestat and self._includediff: - self.ui.write("\n") + self.ui.write(b"\n") if self._includediff: self._differ.showdiff( self.ui, ctx, self._diffopts, graphwidth, stat=False ) if self._includestat or self._includediff: - self.ui.write("\n") + self.ui.write(b"\n") class changesetformatter(changesetprinter): @@ -445,10 +449,10 @@ user=ctx.user(), date=fm.formatdate(ctx.date()), desc=ctx.description(), - bookmarks=fm.formatlist(ctx.bookmarks(), name='bookmark'), - tags=fm.formatlist(ctx.tags(), name='tag'), + bookmarks=fm.formatlist(ctx.bookmarks(), name=b'bookmark'), + tags=fm.formatlist(ctx.tags(), name=b'tag'), parents=fm.formatlist( - [fm.hexfunc(c.node()) for c in ctx.parents()], name='node' + [fm.hexfunc(c.node()) for c in ctx.parents()], name=b'node' ), ) @@ -460,16 +464,16 @@ files = ctx.p1().status(ctx) fm.data( - modified=fm.formatlist(files[0], name='file'), - added=fm.formatlist(files[1], name='file'), - removed=fm.formatlist(files[2], name='file'), + modified=fm.formatlist(files[0], name=b'file'), + added=fm.formatlist(files[1], name=b'file'), + removed=fm.formatlist(files[2], name=b'file'), ) elif self.ui.verbose: - fm.data(files=fm.formatlist(ctx.files(), name='file')) + fm.data(files=fm.formatlist(ctx.files(), name=b'file')) if copies: fm.data( - copies=fm.formatdict(copies, key='name', value='source') + copies=fm.formatdict(copies, key=b'name', value=b'source') ) if self._includestat: @@ -510,21 +514,21 @@ self._tref = tmplspec.ref self._parts = { - 'header': '', - 'footer': '', + b'header': b'', + b'footer': b'', tmplspec.ref: tmplspec.ref, - 'docheader': '', - 'docfooter': '', - 'separator': '', + b'docheader': b'', + b'docfooter': b'', + b'separator': b'', } if tmplspec.mapfile: # find correct templates for current mode, for backward # compatibility with 'log -v/-q/--debug' using a mapfile tmplmodes = [ - (True, ''), - (self.ui.verbose, '_verbose'), - (self.ui.quiet, '_quiet'), - (self.ui.debugflag, '_debug'), + (True, b''), + (self.ui.verbose, b'_verbose'), + (self.ui.quiet, b'_quiet'), + (self.ui.debugflag, b'_debug'), ] for mode, postfix in tmplmodes: for t in self._parts: @@ -536,33 +540,33 @@ m = formatter.templatepartsmap(tmplspec, self.t, partnames) self._parts.update(m) - if self._parts['docheader']: - self.ui.write(self.t.render(self._parts['docheader'], {})) + if self._parts[b'docheader']: + self.ui.write(self.t.render(self._parts[b'docheader'], {})) def close(self): - if self._parts['docfooter']: + if self._parts[b'docfooter']: if not self.footer: - self.footer = "" - self.footer += self.t.render(self._parts['docfooter'], {}) + self.footer = b"" + self.footer += self.t.render(self._parts[b'docfooter'], {}) return super(changesettemplater, self).close() def _show(self, ctx, copies, props): '''show a single changeset or file revision''' props = props.copy() - props['ctx'] = ctx - props['index'] = index = next(self._counter) - props['revcache'] = {'copies': copies} - graphwidth = props.get('graphwidth', 0) + props[b'ctx'] = ctx + props[b'index'] = index = next(self._counter) + props[b'revcache'] = {b'copies': copies} + graphwidth = props.get(b'graphwidth', 0) # write separator, which wouldn't work well with the header part below # since there's inherently a conflict between header (across items) and # separator (per item) - if self._parts['separator'] and index > 0: - self.ui.write(self.t.render(self._parts['separator'], {})) + if self._parts[b'separator'] and index > 0: + self.ui.write(self.t.render(self._parts[b'separator'], {})) # write header - if self._parts['header']: - h = self.t.render(self._parts['header'], props) + if self._parts[b'header']: + h = self.t.render(self._parts[b'header'], props) if self.buffered: self.header[ctx.rev()] = h else: @@ -575,18 +579,18 @@ self.ui.write(self.t.render(key, props)) self._showpatch(ctx, graphwidth) - if self._parts['footer']: + if self._parts[b'footer']: if not self.footer: - self.footer = self.t.render(self._parts['footer'], props) + self.footer = self.t.render(self._parts[b'footer'], props) def templatespec(tmpl, mapfile): if pycompat.ispy3: - assert not isinstance(tmpl, str), 'tmpl must not be a str' + assert not isinstance(tmpl, str), b'tmpl must not be a str' if mapfile: - return formatter.templatespec('changeset', tmpl, mapfile) + return formatter.templatespec(b'changeset', tmpl, mapfile) else: - return formatter.templatespec('', tmpl, None) + return formatter.templatespec(b'', tmpl, None) def _lookuptemplate(ui, tmpl, style): @@ -597,17 +601,17 @@ # ui settings if not tmpl and not style: # template are stronger than style - tmpl = ui.config('ui', 'logtemplate') + tmpl = ui.config(b'ui', b'logtemplate') if tmpl: return templatespec(templater.unquotestring(tmpl), None) else: - style = util.expandpath(ui.config('ui', 'style')) + style = util.expandpath(ui.config(b'ui', b'style')) if not tmpl and style: mapfile = style if not os.path.split(mapfile)[0]: mapname = templater.templatepath( - 'map-cmdline.' + mapfile + b'map-cmdline.' + mapfile ) or templater.templatepath(mapfile) if mapname: mapfile = mapname @@ -616,7 +620,7 @@ if not tmpl: return templatespec(None, None) - return formatter.lookuptemplate(ui, 'changeset', tmpl) + return formatter.lookuptemplate(ui, b'changeset', tmpl) def maketemplater(ui, repo, tmpl, buffered=False): @@ -638,11 +642,11 @@ regular display via changesetprinter() is done. """ postargs = (differ, opts, buffered) - if opts.get('template') in {'cbor', 'json'}: - fm = ui.formatter('log', opts) + if opts.get(b'template') in {b'cbor', b'json'}: + fm = ui.formatter(b'log', opts) return changesetformatter(ui, repo, fm, *postargs) - spec = _lookuptemplate(ui, opts.get('template'), opts.get('style')) + spec = _lookuptemplate(ui, opts.get(b'template'), opts.get(b'style')) if not spec.ref and not spec.tmpl and not spec.mapfile: return changesetprinter(ui, repo, *postargs) @@ -666,11 +670,11 @@ # platforms without shell expansion (windows). wctx = repo[None] match, pats = scmutil.matchandpats(wctx, pats, opts) - slowpath = match.anypats() or (not match.always() and opts.get('removed')) + slowpath = match.anypats() or (not match.always() and opts.get(b'removed')) if not slowpath: - follow = opts.get('follow') or opts.get('follow_first') + follow = opts.get(b'follow') or opts.get(b'follow_first') startctxs = [] - if follow and opts.get('rev'): + if follow and opts.get(b'rev'): startctxs = [repo[r] for r in revs] for f in match.files(): if follow and startctxs: @@ -687,7 +691,10 @@ continue else: raise error.Abort( - _('cannot follow file not in parent ' 'revision: "%s"') + _( + b'cannot follow file not in parent ' + b'revision: "%s"' + ) % f ) filelog = repo.file(f) @@ -696,7 +703,7 @@ # try to find matching entries on the slow path. if follow: raise error.Abort( - _('cannot follow nonexistent file: "%s"') % f + _(b'cannot follow nonexistent file: "%s"') % f ) slowpath = True @@ -706,7 +713,7 @@ # slowpath; otherwise, we can turn off the slowpath if slowpath: for path in match.files(): - if path == '.' or path in repo.store: + if path == b'.' or path in repo.store: break else: slowpath = False @@ -744,15 +751,15 @@ _opt2logrevset = { - 'no_merges': ('not merge()', None), - 'only_merges': ('merge()', None), - '_matchfiles': (None, '_matchfiles(%ps)'), - 'date': ('date(%s)', None), - 'branch': ('branch(%s)', '%lr'), - '_patslog': ('filelog(%s)', '%lr'), - 'keyword': ('keyword(%s)', '%lr'), - 'prune': ('ancestors(%s)', 'not %lr'), - 'user': ('user(%s)', '%lr'), + b'no_merges': (b'not merge()', None), + b'only_merges': (b'merge()', None), + b'_matchfiles': (None, b'_matchfiles(%ps)'), + b'date': (b'date(%s)', None), + b'branch': (b'branch(%s)', b'%lr'), + b'_patslog': (b'filelog(%s)', b'%lr'), + b'keyword': (b'keyword(%s)', b'%lr'), + b'prune': (b'ancestors(%s)', b'not %lr'), + b'user': (b'user(%s)', b'%lr'), } @@ -760,12 +767,12 @@ """Return a revset string built from log options and file patterns""" opts = dict(opts) # follow or not follow? - follow = opts.get('follow') or opts.get('follow_first') + follow = opts.get(b'follow') or opts.get(b'follow_first') # branch and only_branch are really aliases and must be handled at # the same time - opts['branch'] = opts.get('branch', []) + opts.get('only_branch', []) - opts['branch'] = [repo.lookupbranch(b) for b in opts['branch']] + opts[b'branch'] = opts.get(b'branch', []) + opts.get(b'only_branch', []) + opts[b'branch'] = [repo.lookupbranch(b) for b in opts[b'branch']] if slowpath: # See walkchangerevs() slow path. @@ -776,16 +783,16 @@ # "a" and "b" while "file(a) and not file(b)" does # not. Besides, filesets are evaluated against the working # directory. - matchargs = ['r:', 'd:relpath'] + matchargs = [b'r:', b'd:relpath'] for p in pats: - matchargs.append('p:' + p) - for p in opts.get('include', []): - matchargs.append('i:' + p) - for p in opts.get('exclude', []): - matchargs.append('x:' + p) - opts['_matchfiles'] = matchargs + matchargs.append(b'p:' + p) + for p in opts.get(b'include', []): + matchargs.append(b'i:' + p) + for p in opts.get(b'exclude', []): + matchargs.append(b'x:' + p) + opts[b'_matchfiles'] = matchargs elif not follow: - opts['_patslog'] = list(pats) + opts[b'_patslog'] = list(pats) expr = [] for op, val in sorted(opts.iteritems()): @@ -794,7 +801,7 @@ if op not in _opt2logrevset: continue revop, listop = _opt2logrevset[op] - if revop and '%' not in revop: + if revop and b'%' not in revop: expr.append(revop) elif not listop: expr.append(revsetlang.formatspec(revop, val)) @@ -804,7 +811,7 @@ expr.append(revsetlang.formatspec(listop, val)) if expr: - expr = '(' + ' and '.join(expr) + ')' + expr = b'(' + b' and '.join(expr) + b')' else: expr = None return expr @@ -812,13 +819,13 @@ def _initialrevs(repo, opts): """Return the initial set of revisions to be filtered or followed""" - follow = opts.get('follow') or opts.get('follow_first') - if opts.get('rev'): - revs = scmutil.revrange(repo, opts['rev']) + follow = opts.get(b'follow') or opts.get(b'follow_first') + if opts.get(b'rev'): + revs = scmutil.revrange(repo, opts[b'rev']) elif follow and repo.dirstate.p1() == nullid: revs = smartset.baseset() elif follow: - revs = repo.revs('.') + revs = repo.revs(b'.') else: revs = smartset.spanset(repo) revs.reverse() @@ -830,8 +837,8 @@ differ is a changesetdiffer with pre-configured file matcher. """ - follow = opts.get('follow') or opts.get('follow_first') - followfirst = opts.get('follow_first') + follow = opts.get(b'follow') or opts.get(b'follow_first') + followfirst = opts.get(b'follow_first') limit = getlimit(opts) revs = _initialrevs(repo, opts) if not revs: @@ -852,10 +859,10 @@ return match expr = _makerevset(repo, match, pats, slowpath, opts) - if opts.get('graph'): + if opts.get(b'graph'): # User-specified revs might be unsorted, but don't sort before # _makerevset because it might depend on the order of revs - if repo.ui.configbool('experimental', 'log.topo'): + if repo.ui.configbool(b'experimental', b'log.topo'): if not revs.istopo(): revs = dagop.toposort(revs, repo.changelog.parentrevs) # TODO: try to iterate the set lazily @@ -878,16 +885,16 @@ (fromline, toline)). """ linerangebyfname = [] - for pat in opts.get('line_range', []): + for pat in opts.get(b'line_range', []): try: - pat, linerange = pat.rsplit(',', 1) + pat, linerange = pat.rsplit(b',', 1) except ValueError: - raise error.Abort(_('malformatted line-range pattern %s') % pat) + raise error.Abort(_(b'malformatted line-range pattern %s') % pat) try: - fromline, toline = map(int, linerange.split(':')) + fromline, toline = map(int, linerange.split(b':')) except ValueError: - raise error.Abort(_("invalid line range for %s") % pat) - msg = _("line range pattern '%s' must match exactly one file") % pat + raise error.Abort(_(b"invalid line range for %s") % pat) + msg = _(b"line range pattern '%s' must match exactly one file") % pat fname = scmutil.parsefollowlinespattern(repo, None, pat, msg) linerangebyfname.append( (fname, util.processlinerange(fromline, toline)) @@ -911,7 +918,8 @@ for fname, (fromline, toline) in _parselinerangeopt(repo, opts): if fname not in wctx: raise error.Abort( - _('cannot follow file not in parent ' 'revision: "%s"') % fname + _(b'cannot follow file not in parent ' b'revision: "%s"') + % fname ) fctx = wctx.filectx(fname) for fctx, linerange in dagop.blockancestors(fctx, fromline, toline): @@ -958,7 +966,7 @@ def _graphnodeformatter(ui, displayer): - spec = ui.config('ui', 'graphnodetemplate') + spec = ui.config(b'ui', b'graphnodetemplate') if not spec: return templatekw.getgraphnode # fast path for "{graphnode}" @@ -973,7 +981,7 @@ ) def formatnode(repo, ctx): - props = {'ctx': ctx, 'repo': repo} + props = {b'ctx': ctx, b'repo': repo} return templ.renderdefault(props) return formatnode @@ -983,28 +991,28 @@ props = props or {} formatnode = _graphnodeformatter(ui, displayer) state = graphmod.asciistate() - styles = state['styles'] + styles = state[b'styles'] # only set graph styling if HGPLAIN is not set. - if ui.plain('graph'): + if ui.plain(b'graph'): # set all edge styles to |, the default pre-3.8 behaviour - styles.update(dict.fromkeys(styles, '|')) + styles.update(dict.fromkeys(styles, b'|')) else: edgetypes = { - 'parent': graphmod.PARENT, - 'grandparent': graphmod.GRANDPARENT, - 'missing': graphmod.MISSINGPARENT, + b'parent': graphmod.PARENT, + b'grandparent': graphmod.GRANDPARENT, + b'missing': graphmod.MISSINGPARENT, } for name, key in edgetypes.items(): # experimental config: experimental.graphstyle.* styles[key] = ui.config( - 'experimental', 'graphstyle.%s' % name, styles[key] + b'experimental', b'graphstyle.%s' % name, styles[key] ) if not styles[key]: styles[key] = None # experimental config: experimental.graphshorten - state['graphshorten'] = ui.configbool('experimental', 'graphshorten') + state[b'graphshorten'] = ui.configbool(b'experimental', b'graphshorten') for rev, type, ctx, parents in dag: char = formatnode(repo, ctx) @@ -1015,7 +1023,7 @@ displayer.show( ctx, copies=copies, graphwidth=width, **pycompat.strkwargs(props) ) - lines = displayer.hunk.pop(rev).split('\n') + lines = displayer.hunk.pop(rev).split(b'\n') if not lines[-1]: del lines[-1] displayer.flush(ctx) @@ -1040,11 +1048,11 @@ def checkunsupportedgraphflags(pats, opts): - for op in ["newest_first"]: + for op in [b"newest_first"]: if op in opts and opts[op]: raise error.Abort( - _("-G/--graph option is incompatible with --%s") - % op.replace("_", "-") + _(b"-G/--graph option is incompatible with --%s") + % op.replace(b"_", b"-") )