Patchwork D6031: py3: make contrib/debugshell.py work with Python 3

login
register
mail settings
Submitter phabricator
Date Feb. 27, 2019, 10:46 p.m.
Message ID <differential-rev-PHID-DREV-3hkswpskvkeqdunzd6nn-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/38953/
State Superseded
Headers show

Comments

phabricator - Feb. 27, 2019, 10:46 p.m.
pulkit created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  I changed default mercurial installation of my personal laptop to one installed
  with python 3.7. debugshell is one of the extension which I have enabled and it
  was failing. This patch makes debugshell works with Python 3.
  
  I found that chg does not work with python 3.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6031

AFFECTED FILES
  contrib/debugshell.py

CHANGE DETAILS




To: pulkit, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/contrib/debugshell.py b/contrib/debugshell.py
--- a/contrib/debugshell.py
+++ b/contrib/debugshell.py
@@ -7,6 +7,7 @@ 
 import sys
 from mercurial import (
     demandimport,
+    pycompat,
     registrar,
 )
 
@@ -32,28 +33,30 @@ 
 
     IPython.embed()
 
-@command('debugshell|dbsh', [])
+@command(b'debugshell|dbsh', [])
 def debugshell(ui, repo, **opts):
     bannermsg = ("loaded repo : %s\n"
-                 "using source: %s" % (repo.root,
-                                       mercurial.__path__[0]))
+                 "using source: %s" % (pycompat.sysstr(repo.root),
+                                        mercurial.__path__[0]))
 
     pdbmap = {
         'pdb'  : 'code',
         'ipdb' : 'IPython'
     }
 
-    debugger = ui.config("ui", "debugger")
+    debugger = ui.config(b"ui", b"debugger")
     if not debugger:
         debugger = 'pdb'
+    else:
+        debugger = pycompat.sysstr(debugger)
 
     # if IPython doesn't exist, fallback to code.interact
     try:
         with demandimport.deactivated():
             __import__(pdbmap[debugger])
     except ImportError:
-        ui.warn(("%s debugger specified but %s module was not found\n")
+        ui.warn((b"%s debugger specified but %s module was not found\n")
                 % (debugger, pdbmap[debugger]))
-        debugger = 'pdb'
+        debugger = b'pdb'
 
     getattr(sys.modules[__name__], debugger)(ui, repo, bannermsg, **opts)