diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py --- a/mercurial/debugcommands.py +++ b/mercurial/debugcommands.py @@ -3428,56 +3428,59 @@ --verbose will print the entire commit message and the bundle path for that backup. """ - backups = filter( - os.path.isfile, glob.glob(repo.vfs.join("strip-backup") + "/*.hg") + backups = list( + filter( + os.path.isfile, glob.glob(repo.vfs.join(b"strip-backup") + b"/*.hg") + ) ) backups.sort(key=lambda x: os.path.getmtime(x), reverse=True) - opts["bundle"] = "" - opts["force"] = None + opts = pycompat.byteskwargs(opts) + opts[b"bundle"] = b"" + opts[b"force"] = None limit = logcmdutil.getlimit(opts) def display(other, chlist, displayer): - if opts.get("newest_first"): + if opts.get(b"newest_first"): chlist.reverse() count = 0 for n in chlist: if limit is not None and count >= limit: break parents = [True for p in other.changelog.parents(n) if p != nullid] - if opts.get("no_merges") and len(parents) == 2: + if opts.get(b"no_merges") and len(parents) == 2: continue count += 1 displayer.show(other[n]) - recovernode = opts.get("recover") + recovernode = opts.get(b"recover") if recovernode: if scmutil.isrevsymbol(repo, recovernode): - ui.warn(_("%s already exists in the repo\n") % recovernode) + ui.warn(_(b"%s already exists in the repo\n") % recovernode) return elif backups: msg = _( - "Recover changesets using: hg debugbackupbundle --recover " - "\n\nAvailable backup changesets:" + b"Recover changesets using: hg debugbackupbundle --recover " + b"\n\nAvailable backup changesets:" ) - ui.status(msg, label="status.removed") + ui.status(msg, label=b"status.removed") else: - ui.status(_("no backup changesets found\n")) + ui.status(_(b"no backup changesets found\n")) return for backup in backups: # Much of this is copied from the hg incoming logic source = ui.expandpath(os.path.relpath(backup, encoding.getcwd())) - source, branches = hg.parseurl(source, opts.get("branch")) + source, branches = hg.parseurl(source, opts.get(b"branch")) try: other = hg.peer(repo, opts, source) except error.LookupError as ex: - msg = _("\nwarning: unable to open bundle %s") % source - hint = _("\n(missing parent rev %s)\n") % short(ex.name) + msg = _(b"\nwarning: unable to open bundle %s") % source + hint = _(b"\n(missing parent rev %s)\n") % short(ex.name) ui.warn(msg, hint=hint) continue revs, checkout = hg.addbranchrevs( - repo, other, branches, opts.get("rev") + repo, other, branches, opts.get(b"rev") ) if revs: @@ -3487,7 +3490,7 @@ try: ui.quiet = True other, chlist, cleanupfn = bundlerepo.getremotechanges( - ui, repo, other, revs, opts["bundle"], opts["force"] + ui, repo, other, revs, opts[b"bundle"], opts[b"force"] ) except error.LookupError: continue @@ -3498,9 +3501,9 @@ if not chlist: continue if recovernode: - with repo.lock(), repo.transaction("unbundle") as tr: + with repo.lock(), repo.transaction(b"unbundle") as tr: if scmutil.isrevsymbol(other, recovernode): - ui.status(_("Unbundling %s\n") % (recovernode)) + ui.status(_(b"Unbundling %s\n") % (recovernode)) f = hg.openpath(ui, source) gen = exchange.readbundle(ui, f, source) if isinstance(gen, bundle2.unbundle20): @@ -3508,24 +3511,26 @@ repo, gen, tr, - source="unbundle", - url="bundle:" + source, + source=b"unbundle", + url=b"bundle:" + source, ) else: - gen.apply(repo, "unbundle", "bundle:" + source) + gen.apply(repo, b"unbundle", b"bundle:" + source) break else: - backupdate = time.strftime( - "%a %H:%M, %Y-%m-%d", - time.localtime(os.path.getmtime(source)), + backupdate = encoding.strtolocal( + time.strftime( + "%a %H:%M, %Y-%m-%d", + time.localtime(os.path.getmtime(source)), + ) ) - ui.status("\n%s\n" % (backupdate.ljust(50))) + ui.status(b"\n%s\n" % (backupdate.ljust(50))) if ui.verbose: - ui.status("%s%s\n" % ("bundle:".ljust(13), source)) + ui.status(b"%s%s\n" % (b"bundle:".ljust(13), source)) else: opts[ - "template" - ] = "{label('status.modified', node|short)} {desc|firstline}\n" + b"template" + ] = b"{label('status.modified', node|short)} {desc|firstline}\n" displayer = logcmdutil.changesetdisplayer( ui, other, opts, False ) diff --git a/tests/debugbackupbundle.t b/tests/test-debugbackupbundle.t rename from tests/debugbackupbundle.t rename to tests/test-debugbackupbundle.t