# HG changeset patch # User Martin von Zweigbergk # Date 2019-10-08 22:06:18 # Node ID 8ff1ecfadcd110849c47c77e31c92809eea466ab # Parent defabf63e96966a863a4cfb7f80cc94786ed410d cleanup: join string literals that are already on one line Thanks to Kyle for noticing this and for providing the regular expression to run on the codebase. This patch has been reviewed by the test suite and they approved of it. # skip-blame: fallout from mass reformatting Differential Revision: https://phab.mercurial-scm.org/D7028 diff --git a/contrib/perf.py b/contrib/perf.py --- a/contrib/perf.py +++ b/contrib/perf.py @@ -1379,7 +1379,7 @@ def perfmanifest(ui, repo, rev, manifest t = repo.manifestlog._revlog.lookup(rev) except ValueError: raise error.Abort( - b'manifest revision must be integer or full ' b'node' + b'manifest revision must be integer or full node' ) def d(): diff --git a/hgext/acl.py b/hgext/acl.py --- a/hgext/acl.py +++ b/hgext/acl.py @@ -439,7 +439,7 @@ def _txnhook(ui, repo, hooktype, node, s branch = ctx.branch() if denybranches and denybranches(branch): raise error.Abort( - _(b'acl: user "%s" denied on branch "%s"' b' (changeset "%s")') + _(b'acl: user "%s" denied on branch "%s" (changeset "%s")') % (user, branch, ctx) ) if allowbranches and not allowbranches(branch): @@ -457,7 +457,7 @@ def _txnhook(ui, repo, hooktype, node, s for f in ctx.files(): if deny and deny(f): raise error.Abort( - _(b'acl: user "%s" denied on "%s"' b' (changeset "%s")') + _(b'acl: user "%s" denied on "%s" (changeset "%s")') % (user, f, ctx) ) if allow and not allow(f): diff --git a/hgext/convert/common.py b/hgext/convert/common.py --- a/hgext/convert/common.py +++ b/hgext/convert/common.py @@ -169,7 +169,7 @@ class converter_source(object): """ if not re.match(br'[0-9a-fA-F]{40,40}$', revstr): raise error.Abort( - _(b'%s entry %s is not a valid revision' b' identifier') + _(b'%s entry %s is not a valid revision identifier') % (mapname, revstr) ) diff --git a/hgext/convert/cvsps.py b/hgext/convert/cvsps.py --- a/hgext/convert/cvsps.py +++ b/hgext/convert/cvsps.py @@ -124,7 +124,7 @@ def createlog(ui, directory=None, root=b re_01 = re.compile(b'cvs \\[r?log aborted\\]: (.+)$') re_02 = re.compile(b'cvs (r?log|server): (.+)\n$') re_03 = re.compile( - b"(Cannot access.+CVSROOT)|" b"(can't create temporary directory.+)$" + b"(Cannot access.+CVSROOT)|(can't create temporary directory.+)$" ) re_10 = re.compile(b'Working file: (.+)$') re_20 = re.compile(b'symbolic names:') @@ -328,7 +328,7 @@ def createlog(ui, directory=None, root=b state = 5 else: assert not re_32.match(line), _( - b'must have at least ' b'some revisions' + b'must have at least some revisions' ) elif state == 5: @@ -563,7 +563,7 @@ def createlog(ui, directory=None, root=b raise error.Abort( inst, hint=_( - b'check convert.cvsps.logencoding' b' configuration' + b'check convert.cvsps.logencoding configuration' ), ) else: @@ -573,9 +573,7 @@ def createlog(ui, directory=None, root=b b" CVS log message for %s of %s" ) % (revstr(entry.revision), entry.file), - hint=_( - b'check convert.cvsps.logencoding' b' configuration' - ), + hint=_(b'check convert.cvsps.logencoding configuration'), ) hook.hook(ui, None, b"cvslog", True, log=log) diff --git a/hgext/convert/git.py b/hgext/convert/git.py --- a/hgext/convert/git.py +++ b/hgext/convert/git.py @@ -259,7 +259,7 @@ class convert_git(common.converter_sourc # This can happen if a file is in the repo that has permissions # 160000, but there is no .gitmodules file. self.ui.warn( - _(b"warning: cannot read submodules config file in " b"%s\n") + _(b"warning: cannot read submodules config file in %s\n") % version ) return diff --git a/hgext/convert/monotone.py b/hgext/convert/monotone.py --- a/hgext/convert/monotone.py +++ b/hgext/convert/monotone.py @@ -263,7 +263,7 @@ class monotone_source(common.converter_s def getchanges(self, rev, full): if full: raise error.Abort( - _(b"convert from monotone does not support " b"--full") + _(b"convert from monotone does not support --full") ) revision = self.mtnrun(b"get_revision", rev).split(b"\n\n") files = {} @@ -369,7 +369,7 @@ class monotone_source(common.converter_s version = float(versionstr) except Exception: raise error.Abort( - _(b"unable to determine mtn automate interface " b"version") + _(b"unable to determine mtn automate interface version") ) if version >= 12.0: diff --git a/hgext/convert/subversion.py b/hgext/convert/subversion.py --- a/hgext/convert/subversion.py +++ b/hgext/convert/subversion.py @@ -189,7 +189,7 @@ def debugsvnlog(ui, **opts): """ if svn is None: raise error.Abort( - _(b'debugsvnlog could not load Subversion python ' b'bindings') + _(b'debugsvnlog could not load Subversion python bindings') ) args = decodeargs(ui.fin.read()) @@ -647,7 +647,7 @@ class svn_source(converter_source): revstr, ): raise error.Abort( - _(b'%s entry %s is not a valid revision' b' identifier') + _(b'%s entry %s is not a valid revision identifier') % (mapname, revstr) ) diff --git a/hgext/eol.py b/hgext/eol.py --- a/hgext/eol.py +++ b/hgext/eol.py @@ -460,7 +460,7 @@ def reposetup(ui, repo): continue if inconsistenteol(data): raise errormod.Abort( - _(b"inconsistent newline style " b"in %s\n") % f + _(b"inconsistent newline style in %s\n") % f ) return super(eolrepo, self).commitctx(ctx, error, origctx) diff --git a/hgext/fastannotate/commands.py b/hgext/fastannotate/commands.py --- a/hgext/fastannotate/commands.py +++ b/hgext/fastannotate/commands.py @@ -93,7 +93,7 @@ fastannotatecommandargs = { b'l', b'line-number', None, - _(b'show line number at the first ' b'appearance'), + _(b'show line number at the first appearance'), ), ( b'e', @@ -127,7 +127,7 @@ fastannotatecommandargs = { b'', b'rebuild', None, - _(b'rebuild cache even if it exists ' b'(EXPERIMENTAL)'), + _(b'rebuild cache even if it exists (EXPERIMENTAL)'), ), ] + commands.diffwsopts diff --git a/hgext/fastannotate/support.py b/hgext/fastannotate/support.py --- a/hgext/fastannotate/support.py +++ b/hgext/fastannotate/support.py @@ -116,7 +116,7 @@ def _fctxannotate( return _doannotate(self, follow, diffopts) except Exception as ex: self._repo.ui.debug( - b'fastannotate: falling back to the vanilla ' b'annotate: %r\n' % ex + b'fastannotate: falling back to the vanilla annotate: %r\n' % ex ) return orig(self, follow=follow, skiprevs=skiprevs, diffopts=diffopts) diff --git a/hgext/fetch.py b/hgext/fetch.py --- a/hgext/fetch.py +++ b/hgext/fetch.py @@ -188,7 +188,7 @@ def fetch(ui, repo, source=b'default', * message, opts[b'user'], opts[b'date'], editor=editor ) ui.status( - _(b'new changeset %d:%s merges remote changes ' b'with local\n') + _(b'new changeset %d:%s merges remote changes with local\n') % (repo.changelog.rev(n), short(n)) ) diff --git a/hgext/fix.py b/hgext/fix.py --- a/hgext/fix.py +++ b/hgext/fix.py @@ -423,7 +423,7 @@ def checknodescendants(repo, revs): b'(%ld::) - (%ld)', revs, revs ): raise error.Abort( - _(b'can only fix a changeset together ' b'with all its descendants') + _(b'can only fix a changeset together with all its descendants') ) diff --git a/hgext/githelp.py b/hgext/githelp.py --- a/hgext/githelp.py +++ b/hgext/githelp.py @@ -66,7 +66,7 @@ def githelp(ui, repo, *args, **kwargs): if len(args) == 0 or (len(args) == 1 and args[0] == b'git'): raise error.Abort( - _(b'missing git command - ' b'usage: hg githelp -- ') + _(b'missing git command - usage: hg githelp -- ') ) if args[0] == b'git': diff --git a/hgext/gpg.py b/hgext/gpg.py --- a/hgext/gpg.py +++ b/hgext/gpg.py @@ -76,7 +76,7 @@ class gpg(object): fp = os.fdopen(fd, r'wb') fp.write(data) fp.close() - gpgcmd = b"%s --logger-fd 1 --status-fd 1 --verify " b"\"%s\" \"%s\"" % ( + gpgcmd = b"%s --logger-fd 1 --status-fd 1 --verify \"%s\" \"%s\"" % ( self.path, sigfile, datafile, @@ -179,12 +179,12 @@ def getkeys(ui, repo, mygpg, sigdata, co continue if key[0] == b"EXPSIG": ui.write( - _(b"%s Note: Signature has expired" b" (signed by: \"%s\")\n") + _(b"%s Note: Signature has expired (signed by: \"%s\")\n") % (prefix, key[2]) ) elif key[0] == b"EXPKEYSIG": ui.write( - _(b"%s Note: This key has expired" b" (signed by: \"%s\")\n") + _(b"%s Note: This key has expired (signed by: \"%s\")\n") % (prefix, key[2]) ) validkeys.append((key[1], key[2], key[3])) @@ -304,7 +304,7 @@ def _dosign(ui, repo, *revs, **opts): ] if len(nodes) > 1: raise error.Abort( - _(b'uncommitted merge - please provide a ' b'specific revision') + _(b'uncommitted merge - please provide a specific revision') ) if not nodes: nodes = [repo.changelog.tip()] diff --git a/hgext/highlight/highlight.py b/hgext/highlight/highlight.py --- a/hgext/highlight/highlight.py +++ b/hgext/highlight/highlight.py @@ -39,7 +39,7 @@ TextLexer = pygments.lexers.TextLexer HtmlFormatter = pygments.formatters.HtmlFormatter SYNTAX_CSS = ( - b'\n' + b'\n' ) diff --git a/hgext/histedit.py b/hgext/histedit.py --- a/hgext/histedit.py +++ b/hgext/histedit.py @@ -1884,7 +1884,7 @@ def _validateargs(ui, repo, state, freea elif goal == b'edit-plan': if any((outg, revs, freeargs)): raise error.Abort( - _(b'only --commands argument allowed with ' b'--edit-plan') + _(b'only --commands argument allowed with --edit-plan') ) else: if state.inprogress(): diff --git a/hgext/infinitepush/sqlindexapi.py b/hgext/infinitepush/sqlindexapi.py --- a/hgext/infinitepush/sqlindexapi.py +++ b/hgext/infinitepush/sqlindexapi.py @@ -70,7 +70,7 @@ class sqlindexapi(indexapi.indexapi): raise indexapi.indexexception(b"SQL connection already open") if self.sqlcursor: raise indexapi.indexexception( - b"SQL cursor already open without" b" connection" + b"SQL cursor already open without connection" ) retry = 3 while True: @@ -126,7 +126,7 @@ class sqlindexapi(indexapi.indexapi): self.sqlconnect() self.log.info(b"ADD BUNDLE %r %r" % (self.reponame, bundleid)) self.sqlcursor.execute( - b"INSERT INTO bundles(bundle, reponame) VALUES " b"(%s, %s)", + b"INSERT INTO bundles(bundle, reponame) VALUES (%s, %s)", params=(bundleid, self.reponame), ) for ctx in nodesctx: diff --git a/hgext/mq.py b/hgext/mq.py --- a/hgext/mq.py +++ b/hgext/mq.py @@ -593,7 +593,7 @@ class queue(object): diffopts.git = self.gitmode == b'yes' else: raise error.Abort( - _(b'mq.git option can be auto/keep/yes/no' b' got %s') + _(b'mq.git option can be auto/keep/yes/no got %s') % self.gitmode ) if patchfn: @@ -1113,7 +1113,7 @@ class queue(object): if patcherr: self.ui.warn( - _(b"patch failed, rejects left in working " b"directory\n") + _(b"patch failed, rejects left in working directory\n") ) err = 2 break @@ -1214,7 +1214,7 @@ class queue(object): def delete(self, repo, patches, opts): if not patches and not opts.get(b'rev'): raise error.Abort( - _(b'qdelete requires at least one revision or ' b'patch name') + _(b'qdelete requires at least one revision or patch name') ) realpatches = [] @@ -1295,7 +1295,7 @@ class queue(object): if name != name.strip(): # whitespace is stripped by parseseries() raise error.Abort( - _(b'patch name cannot begin or end with ' b'whitespace') + _(b'patch name cannot begin or end with whitespace') ) for prefix in (b'.hg', b'.mq'): if name.startswith(prefix): @@ -1629,11 +1629,11 @@ class queue(object): ) if move: raise error.Abort( - _(b'cannot use --exact and --move ' b'together') + _(b'cannot use --exact and --move together') ) if self.applied: raise error.Abort( - _(b'cannot push --exact with applied ' b'patches') + _(b'cannot push --exact with applied patches') ) root = self.series[start] target = patchheader(self.join(root), self.plainmode).parent @@ -2390,7 +2390,7 @@ class queue(object): if rev: if files: raise error.Abort( - _(b'option "-r" not valid when importing ' b'files') + _(b'option "-r" not valid when importing files') ) rev = scmutil.revrange(repo, rev) rev.sort(reverse=True) @@ -2398,7 +2398,7 @@ class queue(object): raise error.Abort(_(b'no files or revisions specified')) if (len(files) > 1 or len(rev) > 1) and patchname: raise error.Abort( - _(b'option "-n" not valid when importing multiple ' b'patches') + _(b'option "-n" not valid when importing multiple patches') ) imported = [] if rev: @@ -2408,7 +2408,7 @@ class queue(object): heads = repo.changelog.heads(repo.changelog.node(rev.first())) if len(heads) > 1: raise error.Abort( - _(b'revision %d is the root of more than one ' b'branch') + _(b'revision %d is the root of more than one branch') % rev.last() ) if self.applied: @@ -2419,7 +2419,7 @@ class queue(object): ) if heads != [self.applied[-1].node]: raise error.Abort( - _(b'revision %d is not the parent of ' b'the queue') + _(b'revision %d is not the parent of the queue') % rev.first() ) base = repo.changelog.rev(self.applied[0].node) @@ -2447,7 +2447,7 @@ class queue(object): ) if lastparent and lastparent != r: raise error.Abort( - _(b'revision %d is not the parent of ' b'%d') + _(b'revision %d is not the parent of %d') % (r, lastparent) ) lastparent = p1 @@ -2849,7 +2849,7 @@ def clone(ui, source, dest=None, **opts) hg.peer(ui, opts, patchespath) except error.RepoError: raise error.Abort( - _(b'versioned patch repository not found' b' (see init --mq)') + _(b'versioned patch repository not found (see init --mq)') ) qbase, destrev = None, None if sr.local(): @@ -3359,7 +3359,7 @@ def guard(ui, repo, *args, **opts): if opts.get(r'list'): if args or opts.get(r'none'): raise error.Abort( - _(b'cannot mix -l/--list with options or ' b'arguments') + _(b'cannot mix -l/--list with options or arguments') ) for i in pycompat.xrange(len(q.series)): status(i) @@ -3671,13 +3671,12 @@ def save(ui, repo, **opts): if os.path.exists(newpath): if not os.path.isdir(newpath): raise error.Abort( - _(b'destination %s exists and is not ' b'a directory') + _(b'destination %s exists and is not a directory') % newpath ) if not opts.get(b'force'): raise error.Abort( - _(b'destination %s exists, ' b'use -f to force') - % newpath + _(b'destination %s exists, use -f to force') % newpath ) else: newpath = savename(path) @@ -4157,7 +4156,7 @@ def reposetup(ui, repo): for patch in mqtags: if patch[1] in tags: self.ui.warn( - _(b'tag %s overrides mq patch of the same ' b'name\n') + _(b'tag %s overrides mq patch of the same name\n') % patch[1] ) else: @@ -4191,13 +4190,13 @@ def mqinit(orig, ui, *args, **kwargs): repopath = args[0] if not hg.islocal(repopath): raise error.Abort( - _(b'only a local queue repository ' b'may be initialized') + _(b'only a local queue repository may be initialized') ) else: repopath = cmdutil.findrepo(encoding.getcwd()) if not repopath: raise error.Abort( - _(b'there is no Mercurial repository here ' b'(.hg not found)') + _(b'there is no Mercurial repository here (.hg not found)') ) repo = hg.repository(ui, repopath) return qinit(ui, repo, True) diff --git a/hgext/narrow/narrowcommands.py b/hgext/narrow/narrowcommands.py --- a/hgext/narrow/narrowcommands.py +++ b/hgext/narrow/narrowcommands.py @@ -249,7 +249,7 @@ def _narrow( if not force: raise error.Abort( _(b'local changes found'), - hint=_(b'use --force-delete-local-changes to ' b'ignore'), + hint=_(b'use --force-delete-local-changes to ignore'), ) with ui.uninterruptible(): diff --git a/hgext/notify.py b/hgext/notify.py --- a/hgext/notify.py +++ b/hgext/notify.py @@ -377,7 +377,7 @@ class notifier(object): continue if len(subs) == 0: self.ui.debug( - b'notify: no subscribers to selected repo ' b'and revset\n' + b'notify: no subscribers to selected repo and revset\n' ) return diff --git a/hgext/patchbomb.py b/hgext/patchbomb.py --- a/hgext/patchbomb.py +++ b/hgext/patchbomb.py @@ -162,7 +162,7 @@ def _addpullheader(seq, ctx): # destination before patchbombing anything. publicurl = repo.ui.config(b'patchbomb', b'publicurl') if publicurl: - return b'Available At %s\n' b'# hg pull %s -r %s' % ( + return b'Available At %s\n# hg pull %s -r %s' % ( publicurl, publicurl, ctx, @@ -343,9 +343,7 @@ def _getpatches(repo, revs, **opts): prev = repo[b'.'].rev() for r in revs: if r == prev and (repo[None].files() or repo[None].deleted()): - ui.warn( - _(b'warning: working directory has ' b'uncommitted changes\n') - ) + ui.warn(_(b'warning: working directory has uncommitted changes\n')) output = stringio() cmdutil.exportfile( repo, [r], output, opts=patch.difffeatureopts(ui, opts, git=True) @@ -391,7 +389,7 @@ def _getdescription(repo, defaultbody, s body = open(opts.get(r'desc')).read() else: ui.write( - _(b'\nWrite the introductory message for the ' b'patch series.\n\n') + _(b'\nWrite the introductory message for the patch series.\n\n') ) body = ui.edit( defaultbody, sender, repopath=repo.path, action=b'patchbombbody' @@ -911,7 +909,7 @@ def email(ui, repo, *revs, **opts): ui.write(ds, label=b'patchbomb.diffstats') ui.write(b'\n') if ui.promptchoice( - _(b'are you sure you want to send (yn)?' b'$$ &Yes $$ &No') + _(b'are you sure you want to send (yn)?$$ &Yes $$ &No') ): raise error.Abort(_(b'patchbomb canceled')) diff --git a/hgext/phabricator.py b/hgext/phabricator.py --- a/hgext/phabricator.py +++ b/hgext/phabricator.py @@ -830,7 +830,7 @@ def _confirmbeforesend(repo, revs, oldma ) if ui.promptchoice( - _(b'Send the above changes to %s (yn)?' b'$$ &Yes $$ &No') % url + _(b'Send the above changes to %s (yn)?$$ &Yes $$ &No') % url ): return False diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -469,7 +469,7 @@ class rebaseruntime(object): branches.add(repo[rev].branch()) if len(branches) > 1: raise error.Abort( - _(b'cannot collapse multiple named ' b'branches') + _(b'cannot collapse multiple named branches') ) # Calculate self.obsoletenotrebased @@ -589,14 +589,11 @@ class rebaseruntime(object): elif rev in self.obsoletenotrebased: succ = self.obsoletenotrebased[rev] if succ is None: - msg = ( - _(b'note: not rebasing %s, it has no ' b'successor\n') - % desc - ) + msg = _(b'note: not rebasing %s, it has no successor\n') % desc else: succdesc = _ctxdesc(repo[succ]) msg = _( - b'note: not rebasing %s, already in ' b'destination as %s\n' + b'note: not rebasing %s, already in destination as %s\n' ) % (desc, succdesc) repo.ui.status(msg) # Make clearrebased aware state[rev] is not a true successor @@ -1111,7 +1108,7 @@ def _dryrunrebase(ui, repo, action, opts ui.status(_(b'starting in-memory rebase\n')) else: ui.status( - _(b'starting dry-run rebase; repository will not be ' b'changed\n') + _(b'starting dry-run rebase; repository will not be changed\n') ) with repo.wlock(), repo.lock(): needsabort = True @@ -1136,9 +1133,7 @@ def _dryrunrebase(ui, repo, action, opts else: if confirm: ui.status(_(b'rebase completed successfully\n')) - if not ui.promptchoice( - _(b'apply changes (yn)?' b'$$ &Yes $$ &No') - ): + if not ui.promptchoice(_(b'apply changes (yn)?$$ &Yes $$ &No')): # finish unfinished rebase rbsrt._finishrebase() else: @@ -1415,8 +1410,7 @@ def _definedestmap( ui.note(_(b'skipping %s - empty destination\n') % repo[r]) else: raise error.Abort( - _(b'rebase destination for %s is not ' b'unique') - % repo[r] + _(b'rebase destination for %s is not unique') % repo[r] ) if dest is not None: @@ -1638,7 +1632,7 @@ def _checkobsrebase(repo, ui, rebaseobsr if divergencebasecandidates and not divergenceok: divhashes = (bytes(repo[r]) for r in divergencebasecandidates) - msg = _(b"this rebase will cause " b"divergences from: %s") + msg = _(b"this rebase will cause divergences from: %s") h = _( b"to force the rebase please set " b"experimental.evolution.allowdivergence=True" diff --git a/hgext/releasenotes.py b/hgext/releasenotes.py --- a/hgext/releasenotes.py +++ b/hgext/releasenotes.py @@ -300,7 +300,7 @@ def checkadmonitions(ui, repo, directive continue else: ui.write( - _(b"Invalid admonition '%s' present in changeset %s" b"\n") + _(b"Invalid admonition '%s' present in changeset %s\n") % (admonition.group(1), ctx.hex()[:12]) ) sim = lambda x: difflib.SequenceMatcher( @@ -376,7 +376,7 @@ def parsenotesfromrevisions(repo, direct # TODO consider using title as paragraph for more concise notes. if not paragraphs: repo.ui.warn( - _(b"error parsing releasenotes for revision: " b"'%s'\n") + _(b"error parsing releasenotes for revision: '%s'\n") % node.hex(ctx.node()) ) if title: @@ -422,7 +422,7 @@ def parsereleasenotesfile(sections, text continue elif block[b'type'] != b'paragraph': raise error.Abort( - _(b'unexpected block type in release notes: ' b'%s') + _(b'unexpected block type in release notes: %s') % block[b'type'] ) if title: diff --git a/hgext/remotefilelog/__init__.py b/hgext/remotefilelog/__init__.py --- a/hgext/remotefilelog/__init__.py +++ b/hgext/remotefilelog/__init__.py @@ -273,7 +273,7 @@ def uisetup(ui): b'', b'shallow', None, - _(b"create a shallow clone which uses remote file " b"history"), + _(b"create a shallow clone which uses remote file history"), ) ) @@ -796,8 +796,7 @@ def walkfilerevs(orig, repo, match, foll for filename in match.files(): if filename not in pctx: raise error.Abort( - _(b'cannot follow file not in parent ' b'revision: "%s"') - % filename + _(b'cannot follow file not in parent revision: "%s"') % filename ) fctx = pctx[filename] diff --git a/hgext/remotefilelog/contentstore.py b/hgext/remotefilelog/contentstore.py --- a/hgext/remotefilelog/contentstore.py +++ b/hgext/remotefilelog/contentstore.py @@ -137,7 +137,7 @@ class unioncontentstore(basestore.baseun def add(self, name, node, data): raise RuntimeError( - b"cannot add content only to remotefilelog " b"contentstore" + b"cannot add content only to remotefilelog contentstore" ) def getmissing(self, keys): @@ -209,7 +209,7 @@ class remotefilelogcontentstore(basestor def add(self, name, node, data): raise RuntimeError( - b"cannot add content only to remotefilelog " b"contentstore" + b"cannot add content only to remotefilelog contentstore" ) def _sanitizemetacache(self): diff --git a/hgext/remotefilelog/fileserverclient.py b/hgext/remotefilelog/fileserverclient.py --- a/hgext/remotefilelog/fileserverclient.py +++ b/hgext/remotefilelog/fileserverclient.py @@ -414,7 +414,7 @@ class fileserverclient(object): ): if not isinstance(remote, _sshv1peer): raise error.Abort( - b'remotefilelog requires ssh ' b'servers' + b'remotefilelog requires ssh servers' ) step = self.ui.configint( b'remotefilelog', b'getfilesstep' diff --git a/hgext/remotefilelog/metadatastore.py b/hgext/remotefilelog/metadatastore.py --- a/hgext/remotefilelog/metadatastore.py +++ b/hgext/remotefilelog/metadatastore.py @@ -99,7 +99,7 @@ class unionmetadatastore(basestore.baseu def add(self, name, node, data): raise RuntimeError( - b"cannot add content only to remotefilelog " b"contentstore" + b"cannot add content only to remotefilelog contentstore" ) def getmissing(self, keys): @@ -136,7 +136,7 @@ class remotefilelogmetadatastore(basesto def add(self, name, node, parents, linknode): raise RuntimeError( - b"cannot add metadata only to remotefilelog " b"metadatastore" + b"cannot add metadata only to remotefilelog metadatastore" ) diff --git a/hgext/remotefilelog/remotefilelogserver.py b/hgext/remotefilelog/remotefilelogserver.py --- a/hgext/remotefilelog/remotefilelogserver.py +++ b/hgext/remotefilelog/remotefilelogserver.py @@ -194,7 +194,7 @@ def onetimesetup(ui): # since it would require fetching every version of every # file in order to create the revlogs. raise error.Abort( - _(b"Cannot clone from a shallow repo " b"to a full repo.") + _(b"Cannot clone from a shallow repo to a full repo.") ) else: for x in orig(repo, matcher): diff --git a/hgext/remotefilelog/shallowutil.py b/hgext/remotefilelog/shallowutil.py --- a/hgext/remotefilelog/shallowutil.py +++ b/hgext/remotefilelog/shallowutil.py @@ -55,7 +55,7 @@ def getcachepath(ui, allowempty=False): return None else: raise error.Abort( - _(b"could not find config option " b"remotefilelog.cachepath") + _(b"could not find config option remotefilelog.cachepath") ) return util.expandpath(cachepath) @@ -427,7 +427,7 @@ def readexactly(stream, n): s = stream.read(n) if len(s) < n: raise error.Abort( - _(b"stream ended unexpectedly" b" (got %d bytes, expected %d)") + _(b"stream ended unexpectedly (got %d bytes, expected %d)") % (len(s), n) ) return s diff --git a/hgext/share.py b/hgext/share.py --- a/hgext/share.py +++ b/hgext/share.py @@ -70,7 +70,7 @@ testedwith = b'ships-with-hg-core' b'', b'relative', None, - _(b'point to source using a relative path ' b'(EXPERIMENTAL)'), + _(b'point to source using a relative path (EXPERIMENTAL)'), ), ], _(b'[-U] [-B] SOURCE [DEST]'), diff --git a/hgext/split.py b/hgext/split.py --- a/hgext/split.py +++ b/hgext/split.py @@ -108,7 +108,7 @@ def split(ui, repo, *revs, **opts): ) if not alloworphaned and len(torebase) != len(descendants): raise error.Abort( - _(b'split would leave orphaned changesets ' b'behind') + _(b'split would leave orphaned changesets behind') ) else: if not alloworphaned and descendants: @@ -164,7 +164,7 @@ def dosplit(ui, repo, tr, ctx, opts): firstline = c.description().split(b'\n', 1)[0] header += _(b'HG: - %s: %s\n') % (short(c.node()), firstline) header += _( - b'HG: Write commit message for the next split ' b'changeset.\n' + b'HG: Write commit message for the next split changeset.\n' ) else: header = _( diff --git a/hgext/sqlitestore.py b/hgext/sqlitestore.py --- a/hgext/sqlitestore.py +++ b/hgext/sqlitestore.py @@ -358,7 +358,7 @@ class sqlitefilestore(object): if i != rev: raise SQLiteStoreError( - _(b'sqlite database has inconsistent ' b'revision numbers') + _(b'sqlite database has inconsistent revision numbers') ) if p1rev == nullrev: @@ -772,7 +772,7 @@ class sqlitefilestore(object): # SQLite, since columns can be resized at will. if len(tombstone) > len(self.rawdata(censornode)): raise error.Abort( - _(b'censor tombstone must be no longer than ' b'censored data') + _(b'censor tombstone must be no longer than censored data') ) # We need to replace the censored revision's data with the tombstone. @@ -1161,7 +1161,7 @@ def newreporequirements(orig, ui, create # This restriction can be lifted once we have more confidence. if b'sharedrepo' in createopts: raise error.Abort( - _(b'shared repositories not supported with SQLite ' b'store') + _(b'shared repositories not supported with SQLite store') ) # This filtering is out of an abundance of caution: we want to ensure @@ -1176,7 +1176,7 @@ def newreporequirements(orig, ui, create unsupported = set(createopts) - known if unsupported: raise error.Abort( - _(b'SQLite store does not support repo creation ' b'option: %s') + _(b'SQLite store does not support repo creation option: %s') % b', '.join(sorted(unsupported)) ) diff --git a/hgext/strip.py b/hgext/strip.py --- a/hgext/strip.py +++ b/hgext/strip.py @@ -124,24 +124,19 @@ def strip( ), ), (b'', b'no-backup', None, _(b'do not save backup bundle')), - ( - b'', - b'nobackup', - None, - _(b'do not save backup bundle ' b'(DEPRECATED)'), - ), + (b'', b'nobackup', None, _(b'do not save backup bundle (DEPRECATED)'),), (b'n', b'', None, _(b'ignored (DEPRECATED)')), ( b'k', b'keep', None, - _(b"do not modify working directory during " b"strip"), + _(b"do not modify working directory during strip"), ), ( b'B', b'bookmark', [], - _(b"remove revs only reachable from given" b" bookmark"), + _(b"remove revs only reachable from given bookmark"), _(b'BOOKMARK'), ), ( diff --git a/hgext/transplant.py b/hgext/transplant.py --- a/hgext/transplant.py +++ b/hgext/transplant.py @@ -438,7 +438,7 @@ class transplanter(object): p1 = repo.dirstate.p1() if p1 != parent: raise error.Abort( - _(b'working directory not at transplant ' b'parent %s') + _(b'working directory not at transplant parent %s') % nodemod.hex(parent) ) if merge: @@ -661,7 +661,7 @@ def browserevs(ui, repo, nodes, opts): b'c', b'continue', None, - _(b'continue last transplant session ' b'after fixing conflicts'), + _(b'continue last transplant session after fixing conflicts'), ), ( b'', @@ -788,7 +788,7 @@ def _dotransplant(ui, repo, *revs, **opt raise error.Abort(_(b'--all requires a branch revision')) if revs: raise error.Abort( - _(b'--all is incompatible with a ' b'revision list') + _(b'--all is incompatible with a revision list') ) opts = pycompat.byteskwargs(opts) diff --git a/hgext/uncommit.py b/hgext/uncommit.py --- a/hgext/uncommit.py +++ b/hgext/uncommit.py @@ -165,7 +165,7 @@ def uncommit(ui, repo, *pats, **opts): if not allowdirtywcopy and (not pats or isdirtypath): cmdutil.bailifchanged( repo, - hint=_(b'requires ' b'--allow-dirty-working-copy to uncommit'), + hint=_(b'requires --allow-dirty-working-copy to uncommit'), ) old = repo[b'.'] rewriteutil.precheck(repo, [old.rev()], b'uncommit') @@ -190,7 +190,7 @@ def uncommit(ui, repo, *pats, **opts): for f in sorted(badfiles): if f in s.clean: hint = _( - b"file was not changed in working directory " b"parent" + b"file was not changed in working directory parent" ) elif repo.wvfs.exists(f): hint = _(b"file was untracked in working directory parent") diff --git a/hgext/win32mbcs.py b/hgext/win32mbcs.py --- a/hgext/win32mbcs.py +++ b/hgext/win32mbcs.py @@ -128,7 +128,7 @@ def basewrapper(func, argtype, enc, dec, return enc(func(*dec(args), **dec(kwds))) except UnicodeError: raise error.Abort( - _(b"[win32mbcs] filename conversion failed with" b" %s encoding\n") + _(b"[win32mbcs] filename conversion failed with %s encoding\n") % _encoding ) diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py --- a/mercurial/bookmarks.py +++ b/mercurial/bookmarks.py @@ -302,7 +302,7 @@ class bmstore(object): ) return delbms raise error.Abort( - _(b"bookmark '%s' already exists " b"(use -f to force)") % mark + _(b"bookmark '%s' already exists (use -f to force)") % mark ) if ( mark in self._repo.branchmap() @@ -893,7 +893,7 @@ def checkformat(repo, mark): mark = mark.strip() if not mark: raise error.Abort( - _(b"bookmark names cannot consist entirely of " b"whitespace") + _(b"bookmark names cannot consist entirely of whitespace") ) scmutil.checknewlabel(repo, mark, b'bookmark') return mark diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py --- a/mercurial/bundle2.py +++ b/mercurial/bundle2.py @@ -1233,7 +1233,7 @@ class interrupthandler(unpackermixin): def __call__(self): self.ui.debug( - b'bundle2-input-stream-interrupt:' b' opening out of band context\n' + b'bundle2-input-stream-interrupt: opening out of band context\n' ) indebug(self.ui, b'bundle2 stream interruption, looking for a part.') headerblock = self._readpartheader() @@ -1252,7 +1252,7 @@ class interrupthandler(unpackermixin): if not hardabort: part.consume() self.ui.debug( - b'bundle2-input-stream-interrupt:' b' closing out of band context\n' + b'bundle2-input-stream-interrupt: closing out of band context\n' ) @@ -1320,7 +1320,7 @@ def decodepayloadchunks(ui, fh): s = read(headersize) if len(s) < headersize: raise error.Abort( - _(b'stream ended unexpectedly ' b' (got %d bytes, expected %d)') + _(b'stream ended unexpectedly (got %d bytes, expected %d)') % (len(s), chunksize) ) @@ -1889,7 +1889,7 @@ def writebundle( assert compression is None if cg.version != b'01': raise error.Abort( - _(b'old bundle types only supports v1 ' b'changegroups') + _(b'old bundle types only supports v1 changegroups') ) header, comp = bundletypes[bundletype] if comp not in util.compengines.supportedbundletypes: @@ -2136,7 +2136,7 @@ def handlecheckheads(op, inpart): op.gettransaction() if sorted(heads) != sorted(op.repo.heads()): raise error.PushRaced( - b'remote repository changed while pushing - ' b'please try again' + b'remote repository changed while pushing - please try again' ) diff --git a/mercurial/bundlerepo.py b/mercurial/bundlerepo.py --- a/mercurial/bundlerepo.py +++ b/mercurial/bundlerepo.py @@ -269,7 +269,7 @@ class bundlerepository(object): if part.type == b'changegroup': if cgpart: raise NotImplementedError( - b"can't process " b"multiple changegroups" + b"can't process multiple changegroups" ) cgpart = part diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py --- a/mercurial/changegroup.py +++ b/mercurial/changegroup.py @@ -1551,7 +1551,7 @@ def getbundler( if version == b'01' and not matcher.always(): raise error.ProgrammingError( - b'version 01 changegroups do not support ' b'sparse file matchers' + b'version 01 changegroups do not support sparse file matchers' ) if ellipses and version in (b'01', b'02'): diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -257,13 +257,9 @@ def resolvecommitoptions(ui, opts): the ``date`` option is set. """ if opts.get(b'date') and opts.get(b'currentdate'): - raise error.Abort( - _(b'--date and --currentdate are mutually ' b'exclusive') - ) + raise error.Abort(_(b'--date and --currentdate are mutually exclusive')) if opts.get(b'user') and opts.get(b'currentuser'): - raise error.Abort( - _(b'--user and --currentuser are mutually ' b'exclusive') - ) + raise error.Abort(_(b'--user and --currentuser are mutually exclusive')) datemaydiffer = False # date-only change should be ignored? @@ -1010,7 +1006,7 @@ def logmessage(ui, opts): if message and logfile: raise error.Abort( - _(b'options --message and --logfile are mutually ' b'exclusive') + _(b'options --message and --logfile are mutually exclusive') ) if not message and logfile: try: @@ -1180,7 +1176,7 @@ def _buildfntemplate(pat, total=None, se newname.append(stringutil.escapestr(pat[i:n])) if n + 2 > end: raise error.Abort( - _(b"incomplete format spec in output " b"filename") + _(b"incomplete format spec in output filename") ) c = pat[n + 1 : n + 2] i = n + 2 @@ -1188,7 +1184,7 @@ def _buildfntemplate(pat, total=None, se newname.append(expander[c]) except KeyError: raise error.Abort( - _(b"invalid format spec '%%%s' in output " b"filename") % c + _(b"invalid format spec '%%%s' in output filename") % c ) return b''.join(newname) @@ -2264,7 +2260,7 @@ def walkchangerevs(repo, match, opts, pr if follow: raise error.Abort( - _(b'can only follow copies/renames for explicit ' b'filenames') + _(b'can only follow copies/renames for explicit filenames') ) # The slow path checks files modified in every changeset. diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -830,7 +830,7 @@ def _dobackout(ui, repo, node=None, rev= hg._showstats(repo, stats) if stats.unresolvedcount: repo.ui.status( - _(b"use 'hg resolve' to retry unresolved " b"file merges\n") + _(b"use 'hg resolve' to retry unresolved file merges\n") ) return 1 else: @@ -839,7 +839,7 @@ def _dobackout(ui, repo, node=None, rev= cmdutil.revert(ui, repo, rctx, repo.dirstate.parents()) if opts.get(b'no_commit'): - msg = _(b"changeset %s backed out, " b"don't forget to commit.\n") + msg = _(b"changeset %s backed out, don't forget to commit.\n") ui.status(msg % short(node)) return 0 @@ -1353,7 +1353,7 @@ def branch(ui, repo, label=None, **opts) if not opts.get(b'force') and label in repo.branchmap(): if label not in [p.branch() for p in repo[None].parents()]: raise error.Abort( - _(b'a branch of the same name already' b' exists'), + _(b'a branch of the same name already exists'), # i18n: "it" refers to an existing branch hint=_(b"use 'hg update' to switch to it"), ) @@ -1562,9 +1562,7 @@ def bundle(ui, repo, fname, dest=None, * except error.UnsupportedBundleSpecification as e: raise error.Abort( pycompat.bytestr(e), - hint=_( - b"see 'hg help bundlespec' for supported " b"values for --type" - ), + hint=_(b"see 'hg help bundlespec' for supported values for --type"), ) cgversion = bundlespec.contentopts[b"cg.version"] @@ -1578,7 +1576,7 @@ def bundle(ui, repo, fname, dest=None, * if opts.get(b'all'): if dest: raise error.Abort( - _(b"--all is incompatible with specifying " b"a destination") + _(b"--all is incompatible with specifying a destination") ) if opts.get(b'base'): ui.warn(_(b"ignoring --base because --all was specified\n")) @@ -1593,7 +1591,7 @@ def bundle(ui, repo, fname, dest=None, * if base: if dest: raise error.Abort( - _(b"--base is incompatible with specifying " b"a destination") + _(b"--base is incompatible with specifying a destination") ) common = [repo[rev].node() for rev in base] heads = [repo[r].node() for r in revs] if revs else None @@ -2048,7 +2046,7 @@ def _docommit(ui, repo, *pats, **opts): if repo[b'.'].closesbranch(): raise error.Abort( - _(b'current revision is already a branch closing' b' head') + _(b'current revision is already a branch closing head') ) elif not bheads: raise error.Abort(_(b'branch "%s" has no heads to close') % branch) @@ -2298,7 +2296,7 @@ def continuecmd(ui, repo, **opts): if not contstate.continuefunc: raise error.Abort( ( - _(b"%s in progress but does not support " b"'hg continue'") + _(b"%s in progress but does not support 'hg continue'") % (contstate._opname) ), hint=contstate.continuemsg(), @@ -2987,19 +2985,19 @@ def _dograft(ui, repo, *revs, **opts): if opts.get(b'no_commit'): if opts.get(b'edit'): raise error.Abort( - _(b"cannot specify --no-commit and " b"--edit together") + _(b"cannot specify --no-commit and --edit together") ) if opts.get(b'currentuser'): raise error.Abort( - _(b"cannot specify --no-commit and " b"--currentuser together") + _(b"cannot specify --no-commit and --currentuser together") ) if opts.get(b'currentdate'): raise error.Abort( - _(b"cannot specify --no-commit and " b"--currentdate together") + _(b"cannot specify --no-commit and --currentdate together") ) if opts.get(b'log'): raise error.Abort( - _(b"cannot specify --no-commit and " b"--log together") + _(b"cannot specify --no-commit and --log together") ) graftstate = statemod.cmdstate(repo, b'graftstate') @@ -3007,7 +3005,7 @@ def _dograft(ui, repo, *revs, **opts): if opts.get(b'stop'): if opts.get(b'continue'): raise error.Abort( - _(b"cannot use '--continue' and " b"'--stop' together") + _(b"cannot use '--continue' and '--stop' together") ) if opts.get(b'abort'): raise error.Abort(_(b"cannot use '--abort' and '--stop' together")) @@ -3028,7 +3026,7 @@ def _dograft(ui, repo, *revs, **opts): elif opts.get(b'abort'): if opts.get(b'continue'): raise error.Abort( - _(b"cannot use '--continue' and " b"'--abort' together") + _(b"cannot use '--continue' and '--abort' together") ) if any( ( @@ -3866,7 +3864,7 @@ def identify( opts = pycompat.byteskwargs(opts) if not repo and not source: raise error.Abort( - _(b"there is no Mercurial repository here " b"(.hg not found)") + _(b"there is no Mercurial repository here (.hg not found)") ) default = not (num or id or branch or tags or bookmarks) @@ -4904,7 +4902,7 @@ statemod.addunfinished( cmdmsg=_(b'outstanding uncommitted merge'), abortfunc=hg.abortmerge, statushint=_( - b'To continue: hg commit\n' b'To abort: hg merge --abort' + b'To continue: hg commit\nTo abort: hg merge --abort' ), cmdhint=_(b"use 'hg commit' or 'hg merge --abort'"), ) @@ -5305,7 +5303,7 @@ def postincoming(ui, repo, modheads, opt ) elif currentbranchheads > 1: ui.status( - _(b"(run 'hg heads .' to see heads, 'hg merge' to " b"merge)\n") + _(b"(run 'hg heads .' to see heads, 'hg merge' to merge)\n") ) else: ui.status(_(b"(run 'hg heads' to see heads)\n")) @@ -5615,7 +5613,7 @@ def push(ui, repo, dest=None, **opts): revs = [repo[rev].node() for rev in revs] if not revs: raise error.Abort( - _(b'default push revset for path evaluates to an ' b'empty set') + _(b'default push revset for path evaluates to an empty set') ) repo._subtoppath = dest @@ -5882,7 +5880,7 @@ def resolve(ui, repo, *pats, **opts): if confirm: if all: if ui.promptchoice( - _(b're-merge all unresolved files (yn)?' b'$$ &Yes $$ &No') + _(b're-merge all unresolved files (yn)?$$ &Yes $$ &No') ): raise error.Abort(_(b'user quit')) if mark and not pats: @@ -6474,7 +6472,7 @@ def serve(ui, repo, **opts): if opts[b"stdio"]: if repo is None: raise error.RepoError( - _(b"there is no Mercurial repository here" b" (.hg not found)") + _(b"there is no Mercurial repository here (.hg not found)") ) s = wireprotoserver.sshserver(ui, repo) s.serve_forever() @@ -7234,7 +7232,7 @@ def tag(ui, repo, name1, *names, **opts) scmutil.checknewlabel(repo, n, b'tag') if not n: raise error.Abort( - _(b'tag names cannot consist entirely of ' b'whitespace') + _(b'tag names cannot consist entirely of whitespace') ) if opts.get(b'rev') and opts.get(b'remove'): raise error.Abort(_(b"--rev and --remove are incompatible")) @@ -7269,7 +7267,7 @@ def tag(ui, repo, name1, *names, **opts) for n in names: if n in repo.tags(): raise error.Abort( - _(b"tag '%s' already exists " b"(use -f to force)") % n + _(b"tag '%s' already exists (use -f to force)") % n ) if not opts.get(b'local'): p1, p2 = repo.dirstate.parents() diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -1619,7 +1619,7 @@ class workingctx(committablectx): return if not (stat.S_ISREG(st.st_mode) or stat.S_ISLNK(st.st_mode)): self._repo.ui.warn( - _(b"copy failed: %s is not a file or a " b"symbolic link\n") + _(b"copy failed: %s is not a file or a symbolic link\n") % self._repo.dirstate.pathto(dest) ) else: @@ -1678,7 +1678,7 @@ class workingctx(committablectx): or stringutil.binary(d) ): self._repo.ui.debug( - b'ignoring suspect symlink placeholder' b' "%s"\n' % f + b'ignoring suspect symlink placeholder "%s"\n' % f ) continue sane.append(f) @@ -1750,7 +1750,7 @@ class workingctx(committablectx): # already changed simultaneously after last # caching (see also issue5584 for detail) self._repo.ui.debug( - b'skip updating dirstate: ' b'identity mismatch\n' + b'skip updating dirstate: identity mismatch\n' ) except error.LockError: pass diff --git a/mercurial/copies.py b/mercurial/copies.py --- a/mercurial/copies.py +++ b/mercurial/copies.py @@ -677,7 +677,7 @@ def _fullcopytracing(repo, c1, c2, base) if df not in copy: movewithdir[f] = df repo.ui.debug( - (b" pending file src: '%s' -> " b"dst: '%s'\n") + b" pending file src: '%s' -> dst: '%s'\n" % (f, df) ) break diff --git a/mercurial/dagparser.py b/mercurial/dagparser.py --- a/mercurial/dagparser.py +++ b/mercurial/dagparser.py @@ -275,7 +275,7 @@ def parsedag(desc): i += 1 c = nextch() raise error.Abort( - _(b'invalid character in dag description: ' b'%s...') % s + _(b'invalid character in dag description: %s...') % s ) @@ -381,7 +381,7 @@ def dagtextlines( yield b'\n' else: raise error.Abort( - _(b"invalid event type in dag: " b"('%s', '%s')") + _(b"invalid event type in dag: ('%s', '%s')") % ( stringutil.escapestr(kind), stringutil.escapestr(data), diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py --- a/mercurial/debugcommands.py +++ b/mercurial/debugcommands.py @@ -109,7 +109,7 @@ def debugancestor(ui, repo, *args): elif len(args) == 2: if not repo: raise error.Abort( - _(b'there is no Mercurial repository here ' b'(.hg not found)') + _(b'there is no Mercurial repository here (.hg not found)') ) rev1, rev2 = args r = repo.changelog @@ -1464,7 +1464,7 @@ def debuginstall(ui, **opts): fm.condwrite( err, b'encodingerror', - _(b" %s\n" b" (check that your locale is properly set)\n"), + _(b" %s\n (check that your locale is properly set)\n"), err, ) @@ -1577,7 +1577,7 @@ def debuginstall(ui, **opts): ) fm.write( b'compenginesavail', - _(b'checking available compression engines ' b'(%s)\n'), + _(b'checking available compression engines (%s)\n'), fm.formatlist( sorted(e.name() for e in compengines if e.available()), name=b'compengine', @@ -1701,7 +1701,7 @@ def debuginstall(ui, **opts): fm.condwrite( problems, b'problems', - _(b"%d problems detected," b" please check your install!\n"), + _(b"%d problems detected, please check your install!\n"), problems, ) fm.end() @@ -2071,7 +2071,7 @@ def debugnamecomplete(ui, repo, *args): b'', b'exclusive', False, - _(b'restrict display to markers only ' b'relevant to REV'), + _(b'restrict display to markers only relevant to REV'), ), (b'', b'index', False, _(b'display index of the marker')), (b'', b'delete', [], _(b'delete markers specified by indices')), @@ -2115,7 +2115,7 @@ def debugobsolete(ui, repo, precursor=No if repo.currenttransaction(): raise error.Abort( - _(b'cannot delete obsmarkers in the middle ' b'of transaction.') + _(b'cannot delete obsmarkers in the middle of transaction.') ) with repo.lock(): @@ -2949,7 +2949,7 @@ def debugrevlogindex(ui, repo, file_=Non if format == 0: if ui.verbose: ui.writenoi18n( - (b" rev offset length linkrev" b" %s %s p2\n") + b" rev offset length linkrev %s %s p2\n" % (b"nodeid".ljust(idlen), b"p1".ljust(idlen)) ) else: @@ -3096,7 +3096,7 @@ def debugrevspec(ui, repo, expr, **opts) stages = stages[:-1] if opts[b'verify_optimized'] and opts[b'no_optimized']: raise error.Abort( - _(b'cannot use --verify-optimized with ' b'--no-optimized') + _(b'cannot use --verify-optimized with --no-optimized') ) stagenames = set(n for n, f in stages) @@ -3276,7 +3276,7 @@ def debugssl(ui, repo, source=None, **op ''' if not pycompat.iswindows: raise error.Abort( - _(b'certificate chain building is only possible on ' b'Windows') + _(b'certificate chain building is only possible on Windows') ) if not source: @@ -3422,7 +3422,7 @@ def debugtemplate(ui, repo, tmpl, **opts if opts[r'rev']: if repo is None: raise error.RepoError( - _(b'there is no Mercurial repository here ' b'(.hg not found)') + _(b'there is no Mercurial repository here (.hg not found)') ) revs = scmutil.revrange(repo, opts[r'rev']) @@ -3882,9 +3882,7 @@ def debugwireproto(ui, repo, path=None, ) if path and opts[b'localssh']: - raise error.Abort( - _(b'cannot specify --localssh with an explicit ' b'path') - ) + raise error.Abort(_(b'cannot specify --localssh with an explicit path')) if ui.interactive(): ui.write(_(b'(waiting for commands on stdin)\n')) @@ -4153,7 +4151,7 @@ def debugwireproto(ui, repo, path=None, elif action.startswith(b'httprequest '): if not opener: raise error.Abort( - _(b'cannot use httprequest without an HTTP ' b'peer') + _(b'cannot use httprequest without an HTTP peer') ) request = action.split(b' ', 2) diff --git a/mercurial/destutil.py b/mercurial/destutil.py --- a/mercurial/destutil.py +++ b/mercurial/destutil.py @@ -129,9 +129,9 @@ def _destupdatebranchfallback(repo, clea heads = repo.branchheads(currentbranch, closed=True) assert heads, b"any branch has at least one head" node = repo.revs(b'max(.::(%ln))', heads).first() - assert node is not None, ( - b"any revision has at least " b"one descendant branch head" - ) + assert ( + node is not None + ), b"any revision has at least one descendant branch head" if bookmarks.isactivewdirparent(repo): movemark = repo[b'.'].node() else: diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -467,7 +467,7 @@ class dirstate(object): '''Mark as coming from the other parent, always dirty.''' if self._pl[1] == nullid: raise error.Abort( - _(b"setting %r to other parent " b"only allowed in merges") % f + _(b"setting %r to other parent only allowed in merges") % f ) if f in self and self[f] == b'n': # merge-like @@ -1470,7 +1470,7 @@ class dirstatemap(object): if self._pendingmode is not None and self._pendingmode != mode: fp.close() raise error.Abort( - _(b'working directory state may be ' b'changed parallelly') + _(b'working directory state may be changed parallelly') ) self._pendingmode = mode return fp @@ -1494,7 +1494,7 @@ class dirstatemap(object): self._parents = (nullid, nullid) else: raise error.Abort( - _(b'working directory state appears ' b'damaged!') + _(b'working directory state appears damaged!') ) return self._parents @@ -1671,7 +1671,7 @@ if rustmod is not None: if self._pendingmode is not None and self._pendingmode != mode: fp.close() raise error.Abort( - _(b'working directory state may be ' b'changed parallelly') + _(b'working directory state may be changed parallelly') ) self._pendingmode = mode return fp @@ -1697,7 +1697,7 @@ if rustmod is not None: self._parents = self._rustmap.parents(st) except ValueError: raise error.Abort( - _(b'working directory state appears ' b'damaged!') + _(b'working directory state appears damaged!') ) return self._parents diff --git a/mercurial/discovery.py b/mercurial/discovery.py --- a/mercurial/discovery.py +++ b/mercurial/discovery.py @@ -412,11 +412,11 @@ def checkheads(pushop): heads = scmutil.nodesummaries(repo, unsyncedheads) if heads is None: repo.ui.status( - _(b"remote has heads that are " b"not known locally\n") + _(b"remote has heads that are not known locally\n") ) elif branch is None: repo.ui.status( - _(b"remote has heads that are " b"not known locally: %s\n") + _(b"remote has heads that are not known locally: %s\n") % heads ) else: @@ -447,7 +447,7 @@ def checkheads(pushop): if errormsg is None: if branch not in (b'default', None): errormsg = _( - b"push creates new remote head %s " b"on branch '%s'!" + b"push creates new remote head %s on branch '%s'!" ) % (short(dhs[0]), branch) elif repo[dhs[0]].bookmarks(): errormsg = _( diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -631,7 +631,7 @@ class cmdalias(object): continue if not encoding.isasciistr(v): self.badalias = _( - b"non-ASCII character in alias definition " b"'%s:%s'" + b"non-ASCII character in alias definition '%s:%s'" ) % (name, k) return cfg[k] = v diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -319,7 +319,7 @@ def getbundlespec(ui, fh): b'a known bundlespec' ) % version, - hint=_(b'try upgrading your Mercurial ' b'client'), + hint=_(b'try upgrading your Mercurial client'), ) elif part.type == b'stream2' and version is None: # A stream2 part requires to be part of a v2 bundle @@ -330,7 +330,7 @@ def getbundlespec(ui, fh): if not version: raise error.Abort( - _(b'could not identify changegroup version in ' b'bundle') + _(b'could not identify changegroup version in bundle') ) return b'%s-%s' % (comp, version) @@ -383,7 +383,7 @@ def _checkpublish(pushop): ) elif behavior == b'confirm': if ui.promptchoice( - _(b'push and publish %i changesets (yn)?' b'$$ &Yes $$ &No') + _(b'push and publish %i changesets (yn)?$$ &Yes $$ &No') % len(published) ): raise error.Abort(_(b'user quit')) @@ -1166,8 +1166,7 @@ def _abortonsecretctx(pushop, node, b): """abort if a given bookmark points to a secret changeset""" if node and pushop.repo[node].phase() == phases.secret: raise error.Abort( - _(b'cannot push bookmark %s as it points to a secret' b' changeset') - % b + _(b'cannot push bookmark %s as it points to a secret changeset') % b ) @@ -2696,7 +2695,7 @@ def check_heads(repo, their_heads, conte # someone else committed/pushed/unbundled while we # were transferring data raise error.PushRaced( - b'repository changed while %s - ' b'please try again' % context + b'repository changed while %s - please try again' % context ) @@ -2842,7 +2841,7 @@ def _maybeapplyclonebundle(pullop): ) ) repo.ui.warn( - _(b'(you may want to report this to the server ' b'operator)\n') + _(b'(you may want to report this to the server operator)\n') ) return diff --git a/mercurial/exchangev2.py b/mercurial/exchangev2.py --- a/mercurial/exchangev2.py +++ b/mercurial/exchangev2.py @@ -219,7 +219,7 @@ def _fetchrawstorefiles(repo, remote): vfs = repo.svfs else: raise error.Abort( - _(b'invalid location for raw file data: ' b'%s') + _(b'invalid location for raw file data: %s') % filemeta[b'location'] ) diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py --- a/mercurial/filemerge.py +++ b/mercurial/filemerge.py @@ -315,7 +315,7 @@ def _iprompt(repo, mynode, orig, fcd, fc # conflicts. if fcd.changectx().isinmemory(): raise error.InMemoryMergeConflictsError( - b'in-memory merge does not ' b'support file conflicts' + b'in-memory merge does not support file conflicts' ) prompts = partextras(labels) @@ -415,7 +415,7 @@ def _premerge(repo, fcd, fco, fca, toolc if premerge not in validkeep: _valid = b', '.join([b"'" + v + b"'" for v in validkeep]) raise error.ConfigError( - _(b"%s.premerge not valid " b"('%s' is neither boolean nor %s)") + _(b"%s.premerge not valid ('%s' is neither boolean nor %s)") % (tool, premerge, _valid) ) @@ -440,7 +440,7 @@ def _mergecheck(repo, mynode, orig, fcd, uipathfn = scmutil.getuipathfn(repo) if symlink: repo.ui.warn( - _(b'warning: internal %s cannot merge symlinks ' b'for %s\n') + _(b'warning: internal %s cannot merge symlinks for %s\n') % (tool, uipathfn(fcd.path())) ) return False @@ -606,7 +606,7 @@ def _idump(repo, mynode, orig, fcd, fco, if isinstance(fcd, context.overlayworkingfilectx): raise error.InMemoryMergeConflictsError( - b'in-memory merge does not ' b'support the :dump tool.' + b'in-memory merge does not support the :dump tool.' ) util.writefile(a + b".local", fcd.decodeddata()) @@ -635,7 +635,7 @@ def _xmergeimm(repo, mynode, orig, fcd, # directory and tell the user how to get it is my best idea, but it's # clunky.) raise error.InMemoryMergeConflictsError( - b'in-memory merge does not support ' b'external merge tools' + b'in-memory merge does not support external merge tools' ) @@ -698,7 +698,7 @@ def _xmerge(repo, mynode, orig, fcd, fco uipathfn = scmutil.getuipathfn(repo) if fcd.isabsent() or fco.isabsent(): repo.ui.warn( - _(b'warning: %s cannot merge change/delete conflict ' b'for %s\n') + _(b'warning: %s cannot merge change/delete conflict for %s\n') % (tool, uipathfn(fcd.path())) ) return False, 1, None @@ -1064,7 +1064,7 @@ def _filemerge(premerge, repo, wctx, myn if onfailure: if wctx.isinmemory(): raise error.InMemoryMergeConflictsError( - b'in-memory merge does ' b'not support merge ' b'conflicts' + b'in-memory merge does not support merge conflicts' ) ui.warn(onfailure % fduipath) return True, 1, False @@ -1150,7 +1150,7 @@ def _haltmerge(): def _onfilemergefailure(ui): action = ui.config(b'merge', b'on-failure') if action == b'prompt': - msg = _(b'continue merge operation (yn)?' b'$$ &Yes $$ &No') + msg = _(b'continue merge operation (yn)?$$ &Yes $$ &No') if ui.promptchoice(msg, 0) == 1: _haltmerge() if action == b'halt': @@ -1180,7 +1180,7 @@ def _check(repo, r, ui, tool, fcd, files if b'prompt' in _toollist(ui, tool, b"check"): checked = True if ui.promptchoice( - _(b"was merge of '%s' successful (yn)?" b"$$ &Yes $$ &No") + _(b"was merge of '%s' successful (yn)?$$ &Yes $$ &No") % uipathfn(fd), 1, ): diff --git a/mercurial/help.py b/mercurial/help.py --- a/mercurial/help.py +++ b/mercurial/help.py @@ -860,7 +860,7 @@ def help_( ) if name == b'shortlist': rst.append( - _(b"\n(use 'hg help' for the full list " b"of commands)\n") + _(b"\n(use 'hg help' for the full list of commands)\n") ) else: if name == b'shortlist': @@ -872,7 +872,7 @@ def help_( ) elif name and not full: rst.append( - _(b"\n(use 'hg help %s' to show the full help " b"text)\n") + _(b"\n(use 'hg help %s' to show the full help text)\n") % name ) elif name and syns and name in syns.keys(): @@ -929,7 +929,7 @@ def help_( try: cmdutil.findcmd(name, commands.table) rst.append( - _(b"\nuse 'hg help -c %s' to see help for " b"the %s command\n") + _(b"\nuse 'hg help -c %s' to see help for the %s command\n") % (name, name) ) except error.UnknownCommand: @@ -985,7 +985,7 @@ def help_( doc = doc.splitlines()[0] rst = listexts( - _(b"'%s' is provided by the following " b"extension:") % cmd, + _(b"'%s' is provided by the following extension:") % cmd, {ext: doc}, indent=4, showdeprecated=True, diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -379,7 +379,7 @@ def postshare(sourcerepo, destrepo, defa """ default = defaultpath or sourcerepo.ui.config(b'paths', b'default') if default: - template = b'[paths]\n' b'default = %s\n' + template = b'[paths]\ndefault = %s\n' destrepo.vfs.write(b'hgrc', util.tonativeeol(template % default)) if repositorymod.NARROW_REQUIREMENT in sourcerepo.requirements: with destrepo.wlock(): @@ -1182,9 +1182,7 @@ def abortmerge(ui, repo): # there were no conficts, mergestate was not stored node = repo[b'.'].hex() - repo.ui.status( - _(b"aborting the merge, updating back to" b" %s\n") % node[:12] - ) + repo.ui.status(_(b"aborting the merge, updating back to %s\n") % node[:12]) stats = mergemod.update(repo, node, branchmerge=False, force=True) _showstats(repo, stats) return stats.unresolvedcount > 0 diff --git a/mercurial/hgweb/__init__.py b/mercurial/hgweb/__init__.py --- a/mercurial/hgweb/__init__.py +++ b/mercurial/hgweb/__init__.py @@ -119,6 +119,6 @@ def createapp(baseui, repo, webconf): else: if not repo: raise error.RepoError( - _(b"there is no Mercurial repository" b" here (.hg not found)") + _(b"there is no Mercurial repository here (.hg not found)") ) return hgweb_mod.hgweb(repo, baseui=baseui) diff --git a/mercurial/hgweb/request.py b/mercurial/hgweb/request.py --- a/mercurial/hgweb/request.py +++ b/mercurial/hgweb/request.py @@ -516,7 +516,7 @@ class wsgiresponse(object): if self._bodygen is not None or self._bodywillwrite: raise error.ProgrammingError( - b"must use setbodybytes('') with " b"304 responses" + b"must use setbodybytes('') with 304 responses" ) # Various HTTP clients (notably httplib) won't read the HTTP response diff --git a/mercurial/hgweb/server.py b/mercurial/hgweb/server.py --- a/mercurial/hgweb/server.py +++ b/mercurial/hgweb/server.py @@ -242,7 +242,7 @@ class _httprequesthandler(httpservermod. def send_headers(self): if not self.saved_status: raise AssertionError( - b"Sending headers before " b"start_response() called" + b"Sending headers before start_response() called" ) saved_status = self.saved_status.split(None, 1) saved_status[0] = int(saved_status[0]) diff --git a/mercurial/hgweb/webcommands.py b/mercurial/hgweb/webcommands.py --- a/mercurial/hgweb/webcommands.py +++ b/mercurial/hgweb/webcommands.py @@ -1295,7 +1295,7 @@ def archive(web): web.res.setbodywillwrite() if list(web.res.sendresponse()): raise error.ProgrammingError( - b'sendresponse() should not emit data ' b'if writing later' + b'sendresponse() should not emit data if writing later' ) bodyfh = web.res.getbodyfile() diff --git a/mercurial/hook.py b/mercurial/hook.py --- a/mercurial/hook.py +++ b/mercurial/hook.py @@ -117,7 +117,7 @@ def pythonhook(ui, repo, htype, hname, f ui.warn(_(b'error: %s hook failed: %s\n') % (hname, exc.args[0])) else: ui.warn( - _(b'error: %s hook raised an exception: ' b'%s\n') + _(b'error: %s hook raised an exception: %s\n') % (hname, stringutil.forcebytestr(exc)) ) if throw: diff --git a/mercurial/httppeer.py b/mercurial/httppeer.py --- a/mercurial/httppeer.py +++ b/mercurial/httppeer.py @@ -383,14 +383,13 @@ def parsev1commandresponse( return respurl, proto, resp else: raise error.RepoError( - _(b'unexpected CBOR response from ' b'server') + _(b'unexpected CBOR response from server') ) version_info = tuple([int(n) for n in subtype.split(b'.')]) except ValueError: raise error.RepoError( - _(b"'%s' sent a broken Content-Type " b"header (%s)") - % (safeurl, proto) + _(b"'%s' sent a broken Content-Type header (%s)") % (safeurl, proto) ) # TODO consider switching to a decompression reader that uses @@ -685,12 +684,12 @@ class httpv2executor(object): def callcommand(self, command, args): if self._sent: raise error.ProgrammingError( - b'callcommand() cannot be used after ' b'commands are sent' + b'callcommand() cannot be used after commands are sent' ) if self._closed: raise error.ProgrammingError( - b'callcommand() cannot be used after ' b'close()' + b'callcommand() cannot be used after close()' ) # The service advertises which commands are available. So if we attempt @@ -763,7 +762,7 @@ class httpv2executor(object): if len(permissions) > 1: raise error.RepoError( - _(b'cannot make request requiring multiple ' b'permissions: %s') + _(b'cannot make request requiring multiple permissions: %s') % _(b', ').join(sorted(permissions)) ) @@ -1101,7 +1100,7 @@ def instance(ui, path, create, intents=N try: if path.startswith(b'https:') and not urlmod.has_https: raise error.Abort( - _(b'Python support for SSL and HTTPS ' b'is not installed') + _(b'Python support for SSL and HTTPS is not installed') ) inst = makepeer(ui, path) diff --git a/mercurial/keepalive.py b/mercurial/keepalive.py --- a/mercurial/keepalive.py +++ b/mercurial/keepalive.py @@ -296,7 +296,7 @@ class KeepAliveHandler(object): # a DIFFERENT exception if DEBUG: DEBUG.error( - b"unexpected exception - closing " b"connection to %s (%d)", + b"unexpected exception - closing connection to %s (%d)", host, id(h), ) diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -223,12 +223,12 @@ class localcommandexecutor(object): def callcommand(self, command, args): if self._sent: raise error.ProgrammingError( - b'callcommand() cannot be used after ' b'sendcommands()' + b'callcommand() cannot be used after sendcommands()' ) if self._closed: raise error.ProgrammingError( - b'callcommand() cannot be used after ' b'close()' + b'callcommand() cannot be used after close()' ) # We don't need to support anything fancy. Just call the named @@ -343,9 +343,7 @@ class localpeer(repository.peer): return self._repo.pushkey(namespace, key, old, new) def stream_out(self): - raise error.Abort( - _(b'cannot perform stream clone against local ' b'peer') - ) + raise error.Abort(_(b'cannot perform stream clone against local peer')) def unbundle(self, bundle, heads, url): """apply a bundle on a repo @@ -568,7 +566,7 @@ def makelocalrepository(baseui, path, in if not sharedvfs.exists(): raise error.RepoError( - _(b'.hg/sharedpath points to nonexistent ' b'directory %s') + _(b'.hg/sharedpath points to nonexistent directory %s') % sharedvfs.base ) @@ -1453,7 +1451,7 @@ class localrepository(object): if not self._dirstatevalidatewarned: self._dirstatevalidatewarned = True self.ui.warn( - _(b"warning: ignoring unknown" b" working parent %s!\n") + _(b"warning: ignoring unknown working parent %s!\n") % short(node) ) return nullid @@ -2302,7 +2300,7 @@ class localrepository(object): ) % (oldtip, desc, detail) else: msg = _( - b'repository tip rolled back to revision %d' b' (undo %s)\n' + b'repository tip rolled back to revision %d (undo %s)\n' ) % (oldtip, desc) except IOError: msg = _(b'rolling back unknown transaction\n') @@ -2367,8 +2365,7 @@ class localrepository(object): ) else: ui.status( - _(b'working directory now based on ' b'revision %d\n') - % parents + _(b'working directory now based on revision %d\n') % parents ) mergemod.mergestate.clean(self, self[b'.'].node()) @@ -3600,7 +3597,7 @@ def createrepository(ui, path, createopt if not isinstance(unknownopts, dict): raise error.ProgrammingError( - b'filterknowncreateopts() did not return ' b'a dict' + b'filterknowncreateopts() did not return a dict' ) if unknownopts: @@ -3687,7 +3684,7 @@ def poisonrepository(repo): return object.__getattribute__(self, item) raise error.ProgrammingError( - b'repo instances should not be used ' b'after unshare' + b'repo instances should not be used after unshare' ) def close(self): diff --git a/mercurial/logcmdutil.py b/mercurial/logcmdutil.py --- a/mercurial/logcmdutil.py +++ b/mercurial/logcmdutil.py @@ -925,8 +925,7 @@ def getlinerangerevs(repo, userrevs, opt for fname, (fromline, toline) in _parselinerangeopt(repo, opts): if fname not in wctx: raise error.Abort( - _(b'cannot follow file not in parent ' b'revision: "%s"') - % fname + _(b'cannot follow file not in parent revision: "%s"') % fname ) fctx = wctx.filectx(fname) for fctx, linerange in dagop.blockancestors(fctx, fromline, toline): diff --git a/mercurial/mail.py b/mercurial/mail.py --- a/mercurial/mail.py +++ b/mercurial/mail.py @@ -236,8 +236,7 @@ def validateconfig(ui): else: if not procutil.findexe(method): raise error.Abort( - _(b'%r specified as email transport, ' b'but not in PATH') - % method + _(b'%r specified as email transport, but not in PATH') % method ) diff --git a/mercurial/manifest.py b/mercurial/manifest.py --- a/mercurial/manifest.py +++ b/mercurial/manifest.py @@ -778,7 +778,7 @@ class treemanifest(object): def readsubtree(subdir, subm): raise AssertionError( - b'treemanifest constructor only accepts ' b'flat manifests' + b'treemanifest constructor only accepts flat manifests' ) self.parse(text, readsubtree) diff --git a/mercurial/match.py b/mercurial/match.py --- a/mercurial/match.py +++ b/mercurial/match.py @@ -66,7 +66,7 @@ def _expandsets(kindpats, ctx=None, list if kind == b'set': if ctx is None: raise error.ProgrammingError( - b"fileset expression with no " b"context" + b"fileset expression with no context" ) matchers.append(ctx.matchfileset(pat, badfn=badfn)) @@ -546,7 +546,7 @@ class predicatematcher(basematcher): def normalizerootdir(dir, funcname): if dir == b'.': util.nouideprecwarn( - b"match.%s() no longer accepts " b"'.', use '' instead." % funcname, + b"match.%s() no longer accepts '.', use '' instead." % funcname, b'5.1', ) return b'' diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py --- a/mercurial/mdiff.py +++ b/mercurial/mdiff.py @@ -83,7 +83,7 @@ class diffopts(object): self.context = int(self.context) except ValueError: raise error.Abort( - _(b'diff context lines count must be ' b'an integer, not %r') + _(b'diff context lines count must be an integer, not %r') % pycompat.bytestr(self.context) ) diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -760,7 +760,7 @@ def _getcheckunknownconfig(repo, section if config not in valid: validstr = b', '.join([b"'" + v + b"'" for v in valid]) raise error.ConfigError( - _(b"%s.%s not valid " b"('%s' is none of %s)") + _(b"%s.%s not valid ('%s' is none of %s)") % (section, name, config, validstr) ) return config @@ -1048,7 +1048,7 @@ def _checkcollision(repo, wmf, actions): if fold.startswith(foldprefix) and not f.startswith(unfoldprefix): # the folded prefix matches but actual casing is different raise error.Abort( - _(b"case-folding collision between " b"%s and directory of %s") + _(b"case-folding collision between %s and directory of %s") % (lastfull, f) ) foldprefix = fold + b'/' @@ -1225,11 +1225,11 @@ def _filternarrowactions(narrowmatch, br b'which is not yet supported' ) % f, - hint=_(b'merging in the other direction ' b'may work'), + hint=_(b'merging in the other direction may work'), ) else: raise error.Abort( - _(b'conflict in file \'%s\' is outside ' b'narrow clone') % f + _(b'conflict in file \'%s\' is outside narrow clone') % f ) @@ -1992,7 +1992,7 @@ def applyupdates( if usemergedriver: if wctx.isinmemory(): raise error.InMemoryMergeConflictsError( - b"in-memory merge does not " b"support mergedriver" + b"in-memory merge does not support mergedriver" ) ms.commit() proceed = driverpreprocess(repo, ms, wctx, labels=labels) @@ -2334,7 +2334,7 @@ def update( if not mergeancestor and wc.branch() == p2.branch(): raise error.Abort( _(b"nothing to merge"), - hint=_(b"use 'hg update' " b"or check 'hg heads'"), + hint=_(b"use 'hg update' or check 'hg heads'"), ) if not force and (wc.files() or wc.deleted()): raise error.Abort( diff --git a/mercurial/mergeutil.py b/mercurial/mergeutil.py --- a/mercurial/mergeutil.py +++ b/mercurial/mergeutil.py @@ -15,7 +15,7 @@ from . import error def checkunresolved(ms): if list(ms.unresolved()): raise error.Abort( - _(b"unresolved merge conflicts " b"(see 'hg help resolve')") + _(b"unresolved merge conflicts (see 'hg help resolve')") ) if ms.mdstate() != b's' or list(ms.driverresolved()): raise error.Abort( diff --git a/mercurial/narrowspec.py b/mercurial/narrowspec.py --- a/mercurial/narrowspec.py +++ b/mercurial/narrowspec.py @@ -110,7 +110,7 @@ def validatepatterns(pats): """ if not isinstance(pats, set): raise error.ProgrammingError( - b'narrow patterns should be a set; ' b'got %r' % pats + b'narrow patterns should be a set; got %r' % pats ) for pat in pats: diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py --- a/mercurial/obsolete.py +++ b/mercurial/obsolete.py @@ -667,7 +667,7 @@ class obsstore(object): Return the number of new marker.""" if self._readonly: raise error.Abort( - _(b'creating obsolete markers is not enabled on ' b'this repo') + _(b'creating obsolete markers is not enabled on this repo') ) known = set() getsuccessors = self.successors.get diff --git a/mercurial/obsutil.py b/mercurial/obsutil.py --- a/mercurial/obsutil.py +++ b/mercurial/obsutil.py @@ -929,7 +929,7 @@ filteredmsgtable = { b"superseded": _(b"hidden revision '%s' was rewritten as: %s"), b"superseded_split": _(b"hidden revision '%s' was split as: %s"), b"superseded_split_several": _( - b"hidden revision '%s' was split as: %s and " b"%d more" + b"hidden revision '%s' was split as: %s and %d more" ), } diff --git a/mercurial/parser.py b/mercurial/parser.py --- a/mercurial/parser.py +++ b/mercurial/parser.py @@ -163,12 +163,12 @@ def buildargsdict(trees, funcname, argsp ) if kwstart < len(poskeys): raise error.ParseError( - _(b"%(func)s takes at least %(nargs)d positional " b"arguments") + _(b"%(func)s takes at least %(nargs)d positional arguments") % {b'func': funcname, b'nargs': len(poskeys)} ) if not varkey and kwstart > len(poskeys) + len(keys): raise error.ParseError( - _(b"%(func)s takes at most %(nargs)d positional " b"arguments") + _(b"%(func)s takes at most %(nargs)d positional arguments") % {b'func': funcname, b'nargs': len(poskeys) + len(keys)} ) args = util.sortdict() @@ -193,7 +193,7 @@ def buildargsdict(trees, funcname, argsp d = args elif not optkey: raise error.ParseError( - _(b"%(func)s got an unexpected keyword " b"argument '%(key)s'") + _(b"%(func)s got an unexpected keyword argument '%(key)s'") % {b'func': funcname, b'key': k} ) else: @@ -713,7 +713,7 @@ class basealiasrules(object): raise error.Abort(a.error) if a in expanding: raise error.ParseError( - _(b'infinite expansion of %(section)s ' b'"%(name)s" detected') + _(b'infinite expansion of %(section)s "%(name)s" detected') % {b'section': cls._section, b'name': a.name} ) # get cacheable replacement tree by expanding aliases recursively diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -51,7 +51,7 @@ stringio = util.stringio gitre = re.compile(br'diff --git a/(.*) b/(.*)') tabsplitter = re.compile(br'(\t+|[^\t]+)') wordsplitter = re.compile( - br'(\t+| +|[a-zA-Z0-9_\x80-\xff]+|' b'[^ \ta-zA-Z0-9_\x80-\xff])' + br'(\t+| +|[a-zA-Z0-9_\x80-\xff]+|[^ \ta-zA-Z0-9_\x80-\xff])' ) PatchError = error.PatchError @@ -805,7 +805,7 @@ class patchfile(object): if self.exists and self.create: if self.copysource: self.ui.warn( - _(b"cannot create %s: destination already " b"exists\n") + _(b"cannot create %s: destination already exists\n") % self.fname ) else: @@ -3191,7 +3191,7 @@ def diffstat(lines, width=80): if stats: output.append( - _(b' %d files changed, %d insertions(+), ' b'%d deletions(-)\n') + _(b' %d files changed, %d insertions(+), %d deletions(-)\n') % (len(stats), totaladds, totalremoves) ) diff --git a/mercurial/profiling.py b/mercurial/profiling.py --- a/mercurial/profiling.py +++ b/mercurial/profiling.py @@ -43,9 +43,7 @@ def lsprofile(ui, fp): climit = ui.configint(b'profiling', b'nested') if format not in [b'text', b'kcachegrind']: - ui.warn( - _(b"unrecognized profiling format '%s'" b" - Ignored\n") % format - ) + ui.warn(_(b"unrecognized profiling format '%s' - Ignored\n") % format) format = b'text' try: diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py --- a/mercurial/pycompat.py +++ b/mercurial/pycompat.py @@ -361,7 +361,7 @@ else: setattr = setattr # this can't be parsed on Python 3 - exec(b'def raisewithtb(exc, tb):\n' b' raise exc, None, tb\n') + exec(b'def raisewithtb(exc, tb):\n raise exc, None, tb\n') def fsencode(filename): """ diff --git a/mercurial/repair.py b/mercurial/repair.py --- a/mercurial/repair.py +++ b/mercurial/repair.py @@ -359,7 +359,7 @@ def safestriproots(ui, repo, nodes): if notstrip: nodestr = b', '.join(sorted(short(repo[n].node()) for n in notstrip)) ui.warn( - _(b'warning: orphaned descendants detected, ' b'not stripping %s\n') + _(b'warning: orphaned descendants detected, not stripping %s\n') % nodestr ) return [c.node() for c in repo.set(b'roots(%ld)', tostrip)] diff --git a/mercurial/repocache.py b/mercurial/repocache.py --- a/mercurial/repocache.py +++ b/mercurial/repocache.py @@ -70,7 +70,7 @@ class repoloader(object): """ if self._thread and self._thread.is_alive(): raise error.ProgrammingError( - b'cannot obtain cached repo while ' b'loader is active' + b'cannot obtain cached repo while loader is active' ) return self._cache.peek(path, None) diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -244,7 +244,7 @@ class revlogoldio(object): def packentry(self, entry, node, version, rev): if gettype(entry[0]): raise error.RevlogError( - _(b'index entry flags need revlog ' b'version 1') + _(b'index entry flags need revlog version 1') ) e2 = ( getoffset(entry[0]), @@ -451,12 +451,12 @@ class revlog(object): if self._chunkcachesize <= 0: raise error.RevlogError( - _(b'revlog chunk cache size %r is not ' b'greater than 0') + _(b'revlog chunk cache size %r is not greater than 0') % self._chunkcachesize ) elif self._chunkcachesize & (self._chunkcachesize - 1): raise error.RevlogError( - _(b'revlog chunk cache size %r is not a ' b'power of 2') + _(b'revlog chunk cache size %r is not a power of 2') % self._chunkcachesize ) @@ -492,7 +492,7 @@ class revlog(object): if fmt == REVLOGV0: if flags: raise error.RevlogError( - _(b'unknown flags (%#04x) in version %d ' b'revlog %s') + _(b'unknown flags (%#04x) in version %d revlog %s') % (flags >> 16, fmt, self.indexfile) ) @@ -502,7 +502,7 @@ class revlog(object): elif fmt == REVLOGV1: if flags & ~REVLOGV1_FLAGS: raise error.RevlogError( - _(b'unknown flags (%#04x) in version %d ' b'revlog %s') + _(b'unknown flags (%#04x) in version %d revlog %s') % (flags >> 16, fmt, self.indexfile) ) @@ -512,7 +512,7 @@ class revlog(object): elif fmt == REVLOGV2: if flags & ~REVLOGV2_FLAGS: raise error.RevlogError( - _(b'unknown flags (%#04x) in version %d ' b'revlog %s') + _(b'unknown flags (%#04x) in version %d revlog %s') % (flags >> 16, fmt, self.indexfile) ) @@ -2707,7 +2707,7 @@ class revlog(object): if len(tombstone) > self.rawsize(censorrev): raise error.Abort( - _(b'censor tombstone must be no longer than ' b'censored data') + _(b'censor tombstone must be no longer than censored data') ) # Rewriting the revlog in place is hard. Our strategy for censoring is diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -980,7 +980,7 @@ def expectsize(repo, subset, x, order): raise error.ParseError(_(b'invalid set of arguments')) minsize, maxsize = getintrange( args[b'size'], - _(b'expectsize requires a size range' b' or a positive integer'), + _(b'expectsize requires a size range or a positive integer'), _(b'size range bounds must be integers'), minsize, maxsize, @@ -989,11 +989,13 @@ def expectsize(repo, subset, x, order): raise error.ParseError(_(b'negative size')) rev = getset(repo, fullreposet(repo), args[b'set'], order=order) if minsize != maxsize and (len(rev) < minsize or len(rev) > maxsize): - err = _( - b'revset size mismatch.' b' expected between %d and %d, got %d' - ) % (minsize, maxsize, len(rev)) + err = _(b'revset size mismatch. expected between %d and %d, got %d') % ( + minsize, + maxsize, + len(rev), + ) elif minsize == maxsize and len(rev) != minsize: - err = _(b'revset size mismatch.' b' expected %d, got %d') % ( + err = _(b'revset size mismatch. expected %d, got %d') % ( minsize, len(rev), ) @@ -1043,14 +1045,14 @@ def extra(repo, subset, x): raise error.ParseError(_(b'extra takes at least 1 argument')) # i18n: "extra" is a keyword label = getstring( - args[b'label'], _(b'first argument to extra must be ' b'a string') + args[b'label'], _(b'first argument to extra must be a string') ) value = None if b'value' in args: # i18n: "extra" is a keyword value = getstring( - args[b'value'], _(b'second argument to extra must be ' b'a string') + args[b'value'], _(b'second argument to extra must be a string') ) kind, value, matcher = stringutil.stringmatcher(value) @@ -1314,7 +1316,7 @@ def _matchfiles(repo, subset, x): elif prefix == b'r:': if rev is not None: raise error.ParseError( - b'_matchfiles expected at most one ' b'revision' + b'_matchfiles expected at most one revision' ) if value == b'': # empty means working directory rev = node.wdirrev @@ -1323,7 +1325,7 @@ def _matchfiles(repo, subset, x): elif prefix == b'd:': if default is not None: raise error.ParseError( - b'_matchfiles expected at most one ' b'default mode' + b'_matchfiles expected at most one default mode' ) default = value else: @@ -2127,7 +2129,7 @@ def matching(repo, subset, x): fieldlist = getstring( l[1], # i18n: "matching" is a keyword - _(b"matching requires a string " b"as its second argument"), + _(b"matching requires a string as its second argument"), ).split() # Make sure that there are no repeated fields, @@ -2284,7 +2286,7 @@ def _getsortargs(x): if len(keyflags) > 1 and any(k == b'topo' for k, reverse in keyflags): # i18n: "topo" is a keyword raise error.ParseError( - _(b'topo sort order cannot be combined ' b'with other sort keys') + _(b'topo sort order cannot be combined with other sort keys') ) opts = {} diff --git a/mercurial/shelve.py b/mercurial/shelve.py --- a/mercurial/shelve.py +++ b/mercurial/shelve.py @@ -456,7 +456,7 @@ def _nothingtoshelvemessaging(ui, repo, stat = repo.status(match=scmutil.match(repo[None], pats, opts)) if stat.deleted: ui.status( - _(b"nothing changed (%d missing files, see " b"'hg status')\n") + _(b"nothing changed (%d missing files, see 'hg status')\n") % len(stat.deleted) ) else: @@ -707,7 +707,7 @@ def checkparents(repo, state): """check parent while resuming an unshelve""" if state.parents != repo.dirstate.parents(): raise error.Abort( - _(b'working directory parents do not match unshelve ' b'state') + _(b'working directory parents do not match unshelve state') ) diff --git a/mercurial/sparse.py b/mercurial/sparse.py --- a/mercurial/sparse.py +++ b/mercurial/sparse.py @@ -121,7 +121,7 @@ def patternsforrev(repo, rev): if rev is None: raise error.Abort( - _(b'cannot parse sparse patterns from working ' b'directory') + _(b'cannot parse sparse patterns from working directory') ) includes, excludes, profiles = parseconfig(repo.ui, raw, b'sparse') @@ -483,7 +483,7 @@ def refreshwdir(repo, origstatus, origsp if abort: raise error.Abort( - _(b'could not update sparseness due to pending ' b'changes') + _(b'could not update sparseness due to pending changes') ) # Calculate actions diff --git a/mercurial/sslutil.py b/mercurial/sslutil.py --- a/mercurial/sslutil.py +++ b/mercurial/sslutil.py @@ -210,7 +210,7 @@ def _hostsettings(ui, hostname): if not (fingerprint.startswith((b'sha1:', b'sha256:', b'sha512:'))): raise error.Abort( _(b'invalid fingerprint for %s: %s') % (bhostname, fingerprint), - hint=_(b'must begin with "sha1:", "sha256:", ' b'or "sha512:"'), + hint=_(b'must begin with "sha1:", "sha256:", or "sha512:"'), ) alg, fingerprint = fingerprint.split(b':', 1) @@ -328,7 +328,7 @@ def protocolsettings(protocol): if supportedprotocols == {b'tls1.0'}: if protocol != b'tls1.0': raise error.Abort( - _(b'current Python does not support protocol ' b'setting %s') + _(b'current Python does not support protocol setting %s') % protocol, hint=_( b'upgrade Python or disable setting since ' @@ -616,7 +616,7 @@ def wrapserversocket( for f in (certfile, keyfile, cafile): if f and not os.path.exists(f): raise error.Abort( - _(b'referenced certificate file (%s) does not ' b'exist') % f + _(b'referenced certificate file (%s) does not exist') % f ) protocol, options, _protocolui = protocolsettings(b'tls1.0') @@ -928,7 +928,7 @@ def validatesocket(sock): if not peercert: raise error.Abort( - _(b'%s certificate error: ' b'no certificate received') % host + _(b'%s certificate error: no certificate received') % host ) if settings[b'disablecertverification']: @@ -990,7 +990,7 @@ def validatesocket(sock): section = b'hostsecurity' nice = b'%s:%s' % (hash, fmtfingerprint(peerfingerprints[hash])) raise error.Abort( - _(b'certificate for %s has unexpected ' b'fingerprint %s') + _(b'certificate for %s has unexpected fingerprint %s') % (host, nice), hint=_(b'check %s configuration') % section, ) diff --git a/mercurial/state.py b/mercurial/state.py --- a/mercurial/state.py +++ b/mercurial/state.py @@ -60,7 +60,7 @@ class cmdstate(object): """ if not isinstance(version, int): raise error.ProgrammingError( - b"version of state file should be" b" an integer" + b"version of state file should be an integer" ) with self._repo.vfs(self.fname, b'wb', atomictemp=True) as fp: @@ -76,7 +76,7 @@ class cmdstate(object): int(fp.readline()) except ValueError: raise error.CorruptedState( - b"unknown version of state file" b" found" + b"unknown version of state file found" ) return cborutil.decodeall(fp.read())[0] diff --git a/mercurial/streamclone.py b/mercurial/streamclone.py --- a/mercurial/streamclone.py +++ b/mercurial/streamclone.py @@ -468,14 +468,14 @@ def applybundlev1(repo, fp): """ if len(repo): raise error.Abort( - _(b'cannot apply stream clone bundle on non-empty ' b'repo') + _(b'cannot apply stream clone bundle on non-empty repo') ) filecount, bytecount, requirements = readbundle1header(fp) missingreqs = requirements - repo.supportedformats if missingreqs: raise error.Abort( - _(b'unable to apply stream clone: ' b'unsupported format: %s') + _(b'unable to apply stream clone: unsupported format: %s') % b', '.join(sorted(missingreqs)) ) @@ -715,7 +715,7 @@ def applybundlev2(repo, fp, filecount, f missingreqs = [r for r in requirements if r not in repo.supported] if missingreqs: raise error.Abort( - _(b'unable to apply stream clone: ' b'unsupported format: %s') + _(b'unable to apply stream clone: unsupported format: %s') % b', '.join(sorted(missingreqs)) ) diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py --- a/mercurial/subrepo.py +++ b/mercurial/subrepo.py @@ -1232,7 +1232,7 @@ class svnsubrepo(abstractsubrepo): def remove(self): if self.dirty(): self.ui.warn( - _(b'not removing repo %s because ' b'it has changes.\n') + _(b'not removing repo %s because it has changes.\n') % self._path ) return @@ -1572,7 +1572,7 @@ class gitsubrepo(abstractsubrepo): self._gitcommand([b'fetch']) if not self._githavelocally(revision): raise error.Abort( - _(b'revision %s does not exist in subrepository ' b'"%s"\n') + _(b'revision %s does not exist in subrepository "%s"\n') % (revision, self._relpath) ) @@ -1630,11 +1630,11 @@ class gitsubrepo(abstractsubrepo): def rawcheckout(): # no branch to checkout, check it out with no branch self.ui.warn( - _(b'checking out detached HEAD in ' b'subrepository "%s"\n') + _(b'checking out detached HEAD in subrepository "%s"\n') % self._relpath ) self.ui.warn( - _(b'check out a git branch if you intend ' b'to make changes\n') + _(b'check out a git branch if you intend to make changes\n') ) checkout([b'-q', revision]) @@ -1822,7 +1822,7 @@ class gitsubrepo(abstractsubrepo): return if self.dirty(): self.ui.warn( - _(b'not removing repo %s because ' b'it has changes.\n') + _(b'not removing repo %s because it has changes.\n') % self._relpath ) return diff --git a/mercurial/tags.py b/mercurial/tags.py --- a/mercurial/tags.py +++ b/mercurial/tags.py @@ -593,7 +593,7 @@ def _tag( repo.hook(b'pretag', throw=True, node=hex(node), tag=name, local=local) if name in branches: repo.ui.warn( - _(b"warning: tag %s conflicts with existing" b" branch name\n") + _(b"warning: tag %s conflicts with existing branch name\n") % name ) diff --git a/mercurial/upgrade.py b/mercurial/upgrade.py --- a/mercurial/upgrade.py +++ b/mercurial/upgrade.py @@ -409,7 +409,7 @@ class compressionengine(formatvariant): ) upgrademessage = _( - b'revlog content will be recompressed with the new ' b'algorithm.' + b'revlog content will be recompressed with the new algorithm.' ) @classmethod @@ -1106,7 +1106,7 @@ def upgraderepo( missingreqs = requiredsourcerequirements(repo) - repo.requirements if missingreqs: raise error.Abort( - _(b'cannot upgrade repository; requirement ' b'missing: %s') + _(b'cannot upgrade repository; requirement missing: %s') % _(b', ').join(sorted(missingreqs)) ) @@ -1173,7 +1173,7 @@ def upgraderepo( raise error.Abort( _(b'unknown optimization action requested: %s') % b', '.join(sorted(optimize)), - hint=_(b'run without arguments to see valid ' b'optimizations'), + hint=_(b'run without arguments to see valid optimizations'), ) deficiencies = finddeficiencies(repo) diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -2034,12 +2034,12 @@ def checkwinfilename(path): ) if ord(c) <= 31: return _( - b"filename contains '%s', which is invalid " b"on Windows" + b"filename contains '%s', which is invalid on Windows" ) % stringutil.escapestr(c) base = n.split(b'.')[0] if base and base.lower() in _winreservednames: return ( - _(b"filename contains '%s', which is reserved " b"on Windows") + _(b"filename contains '%s', which is reserved on Windows") % base ) t = n[-1:] @@ -3506,7 +3506,7 @@ class dirs(object): addpath(f) elif skip is not None: raise error.ProgrammingError( - b"skip character is only supported " b"with a dict source" + b"skip character is only supported with a dict source" ) else: for f in map: @@ -3583,7 +3583,7 @@ def readexactly(stream, n): s = stream.read(n) if len(s) < n: raise error.Abort( - _(b"stream ended unexpectedly" b" (got %d bytes, expected %d)") + _(b"stream ended unexpectedly (got %d bytes, expected %d)") % (len(s), n) ) return s diff --git a/mercurial/utils/cborutil.py b/mercurial/utils/cborutil.py --- a/mercurial/utils/cborutil.py +++ b/mercurial/utils/cborutil.py @@ -404,7 +404,7 @@ def decodeitem(b, offset=0): if special != SPECIAL_START_ARRAY: raise CBORDecodeError( - b'expected array after finite set ' b'semantic tag' + b'expected array after finite set semantic tag' ) return True, size, readcount + readcount2 + 1, SPECIAL_START_SET @@ -746,7 +746,7 @@ class sansiodecoder(object): SPECIAL_START_SET, ): raise CBORDecodeError( - b'collections not supported as map ' b'keys' + b'collections not supported as map keys' ) # We do not allow special values to be used as map keys. @@ -841,7 +841,7 @@ class sansiodecoder(object): SPECIAL_START_SET, ): raise CBORDecodeError( - b'collections not allowed as set ' b'values' + b'collections not allowed as set values' ) # We don't allow non-trivial types to exist as set values. diff --git a/mercurial/vfs.py b/mercurial/vfs.py --- a/mercurial/vfs.py +++ b/mercurial/vfs.py @@ -685,7 +685,7 @@ class backgroundfilecloser(object): """Schedule a file for closing.""" if not self._entered: raise error.Abort( - _(b'can only call close() when context manager ' b'active') + _(b'can only call close() when context manager active') ) # If a background thread encountered an exception, raise now so we fail diff --git a/mercurial/wireprotoframing.py b/mercurial/wireprotoframing.py --- a/mercurial/wireprotoframing.py +++ b/mercurial/wireprotoframing.py @@ -711,7 +711,7 @@ class identitydecoder(object): def __init__(self, ui, extraobjs): if extraobjs: raise error.Abort( - _(b'identity decoder received unexpected ' b'additional values') + _(b'identity decoder received unexpected additional values') ) def decode(self, data): @@ -745,7 +745,7 @@ class zlibdecoder(object): if extraobjs: raise error.Abort( - _(b'zlib decoder received unexpected ' b'additional values') + _(b'zlib decoder received unexpected additional values') ) self._decompressor = zlib.decompressobj() @@ -802,7 +802,7 @@ class zstd8mbdecoder(zstdbasedecoder): def __init__(self, ui, extraobjs): if extraobjs: raise error.Abort( - _(b'zstd8mb decoder received unexpected ' b'additional values') + _(b'zstd8mb decoder received unexpected additional values') ) super(zstd8mbdecoder, self).__init__(maxwindowsize=8 * 1048576) @@ -1116,7 +1116,7 @@ class serverreactor(object): # TODO handle decoding frames self._state = b'errored' raise error.ProgrammingError( - b'support for decoding stream payloads ' b'not yet implemented' + b'support for decoding stream payloads not yet implemented' ) if frame.streamflags & STREAM_FLAG_END_STREAM: @@ -1361,7 +1361,7 @@ class serverreactor(object): if not entry[b'requestdone']: self._state = b'errored' raise error.ProgrammingError( - b'should not be called without ' b'requestdone set' + b'should not be called without requestdone set' ) del self._receivingcommands[requestid] @@ -1664,9 +1664,7 @@ class serverreactor(object): return self._makeruncommandresult(frame.requestid) else: self._state = b'errored' - return self._makeerrorresult( - _(b'command data frame without ' b'flags') - ) + return self._makeerrorresult(_(b'command data frame without flags')) def _onframeerrored(self, frame): return self._makeerrorresult(_(b'server already errored')) @@ -1796,7 +1794,7 @@ class clientreactor(object): else: if not self._cansend: raise error.ProgrammingError( - b'sends cannot be performed on ' b'this instance' + b'sends cannot be performed on this instance' ) if not self._hasmultiplesend: @@ -1824,7 +1822,7 @@ class clientreactor(object): if not self._cansend: raise error.ProgrammingError( - b'sends cannot be performed on this ' b'instance' + b'sends cannot be performed on this instance' ) # If the instance only allows sending once, mark that we have fired diff --git a/mercurial/wireprotoserver.py b/mercurial/wireprotoserver.py --- a/mercurial/wireprotoserver.py +++ b/mercurial/wireprotoserver.py @@ -679,7 +679,7 @@ def _runsshserver(ui, repo, fin, fout, e _sshv1respondooberror( fout, ui.ferr, - b'cannot upgrade protocols multiple ' b'times', + b'cannot upgrade protocols multiple times', ) state = b'shutdown' continue @@ -787,7 +787,7 @@ def _runsshserver(ui, repo, fin, fout, e _sshv1respondooberror( fout, ui.ferr, - b'malformed handshake protocol: ' b'missing %s' % line, + b'malformed handshake protocol: missing %s' % line, ) ok = False state = b'shutdown' diff --git a/mercurial/wireprotov1peer.py b/mercurial/wireprotov1peer.py --- a/mercurial/wireprotov1peer.py +++ b/mercurial/wireprotov1peer.py @@ -143,12 +143,12 @@ class peerexecutor(object): def callcommand(self, command, args): if self._sent: raise error.ProgrammingError( - b'callcommand() cannot be used ' b'after commands are sent' + b'callcommand() cannot be used after commands are sent' ) if self._closed: raise error.ProgrammingError( - b'callcommand() cannot be used ' b'after close()' + b'callcommand() cannot be used after close()' ) # Commands are dispatched through methods on the peer. diff --git a/mercurial/wireprotov1server.py b/mercurial/wireprotov1server.py --- a/mercurial/wireprotov1server.py +++ b/mercurial/wireprotov1server.py @@ -41,7 +41,7 @@ urlreq = util.urlreq bundle2requiredmain = _(b'incompatible Mercurial client; bundle2 required') bundle2requiredhint = _( - b'see https://www.mercurial-scm.org/wiki/' b'IncompatibleClient' + b'see https://www.mercurial-scm.org/wiki/IncompatibleClient' ) bundle2required = b'%s\n(%s)\n' % (bundle2requiredmain, bundle2requiredhint) @@ -165,13 +165,13 @@ def wireprotocommand(name, args=None, pe if not isinstance(args, bytes): raise error.ProgrammingError( - b'arguments for version 1 commands ' b'must be declared as bytes' + b'arguments for version 1 commands must be declared as bytes' ) def register(func): if name in commands: raise error.ProgrammingError( - b'%s command already registered ' b'for version 1' % name + b'%s command already registered for version 1' % name ) commands[name] = wireprototypes.commandentry( func, args=args, transports=transports, permission=permission diff --git a/mercurial/wireprotov2server.py b/mercurial/wireprotov2server.py --- a/mercurial/wireprotov2server.py +++ b/mercurial/wireprotov2server.py @@ -140,7 +140,7 @@ def handlehttpv2request(rctx, req, res, # since client does Accept it. res.headers[b'Content-Type'] = b'text/plain' res.setbodybytes( - _(b'client MUST send Content-Type header with ' b'value: %s\n') + _(b'client MUST send Content-Type header with value: %s\n') % FRAMINGTYPE ) return @@ -324,7 +324,7 @@ def _httpv2runcommand( res.status = b'403 Forbidden' res.headers[b'Content-Type'] = b'text/plain' res.setbodybytes( - _(b'insufficient permissions to execute ' b'command: %s') + _(b'insufficient permissions to execute command: %s') % command[b'command'] ) return True @@ -340,7 +340,7 @@ def _httpv2runcommand( res.status = b'200 OK' res.headers[b'Content-Type'] = b'text/plain' res.setbodybytes( - _(b'multiple commands cannot be issued to this ' b'URL') + _(b'multiple commands cannot be issued to this URL') ) return True @@ -725,13 +725,13 @@ def wireprotocommand( if not isinstance(args, dict): raise error.ProgrammingError( - b'arguments for version 2 commands ' b'must be declared as dicts' + b'arguments for version 2 commands must be declared as dicts' ) for arg, meta in args.items(): if arg == b'*': raise error.ProgrammingError( - b'* argument name not allowed on ' b'version 2 commands' + b'* argument name not allowed on version 2 commands' ) if not isinstance(meta, dict): @@ -773,7 +773,7 @@ def wireprotocommand( def register(func): if name in COMMANDS: raise error.ProgrammingError( - b'%s command already registered ' b'for version 2' % name + b'%s command already registered for version 2' % name ) COMMANDS[name] = wireprototypes.commandentry( @@ -890,7 +890,7 @@ def resolvenodes(repo, revisions): if not isinstance(revisions, list): raise error.WireprotoCommandError( - b'revisions must be defined as an ' b'array' + b'revisions must be defined as an array' ) for spec in revisions: