hgext/histedit.py
branchstable
changeset 43368 d8215ff082da
parent 43228 0d609ed185ea
child 43369 8aa54c5a2577
--- a/hgext/histedit.py	Fri Nov 01 17:23:02 2019 +0100
+++ b/hgext/histedit.py	Thu Oct 31 14:25:51 2019 -0700
@@ -217,6 +217,7 @@
     copies,
     destutil,
     discovery,
+    encoding,
     error,
     exchange,
     extensions,
@@ -1117,7 +1118,7 @@
         self.pos = pos
         self.conflicts = []
 
-    def __str__(self):
+    def __bytes__(self):
         # Some actions ('fold' and 'roll') combine a patch with a previous one.
         # Add a marker showing which patch they apply to, and also omit the
         # description for 'roll' (since it will get discarded). Example display:
@@ -1135,10 +1136,16 @@
         desc = self.ctx.description().splitlines()[0].strip()
         if self.action == b'roll':
             desc = b''
-        return b"#{0:<2} {1:<6} {2}:{3}   {4}".format(
-            self.origpos, action, r, h, desc
+        return b"#%s %s %d:%s   %s" % (
+            (b'%d' % self.origpos).ljust(2),
+            action.ljust(6),
+            r,
+            h,
+            desc,
         )
 
+    __str__ = encoding.strmethod(__bytes__)
+
     def checkconflicts(self, other):
         if other.pos > self.pos and other.origpos <= self.origpos:
             if set(other.ctx.files()) & set(self.ctx.files()) != set():
@@ -1324,7 +1331,7 @@
     whitespace characters, so that the color appears on the whole line"""
     maxy, maxx = win.getmaxyx()
     length = maxx - 1 - x
-    line = (b"{0:<%d}" % length).format(str(line).strip())[:length]
+    line = bytes(line).ljust(length)[:length]
     if y < 0:
         y = maxy + y
     if x < 0:
@@ -1395,17 +1402,17 @@
         maxy, maxx = win.getmaxyx()
         length = maxx - 3
 
-        line = b"changeset: {0}:{1:<12}".format(ctx.rev(), ctx)
+        line = b"changeset: %d:%s" % (ctx.rev(), ctx.hex())
         win.addstr(1, 1, line[:length])
 
-        line = b"user:      {0}".format(ctx.user())
+        line = b"user:      %s" % ctx.user()
         win.addstr(2, 1, line[:length])
 
         bms = repo.nodebookmarks(ctx.node())
-        line = b"bookmark:  {0}".format(b' '.join(bms))
+        line = b"bookmark:  %s" % b' '.join(bms)
         win.addstr(3, 1, line[:length])
 
-        line = b"summary:   {0}".format(ctx.description().splitlines()[0])
+        line = b"summary:   %s" % (ctx.description().splitlines()[0])
         win.addstr(4, 1, line[:length])
 
         line = b"files:     "
@@ -1426,7 +1433,7 @@
         conflicts = rule.conflicts
         if len(conflicts) > 0:
             conflictstr = b','.join(map(lambda r: str(r.ctx), conflicts))
-            conflictstr = b"changed files overlap with {0}".format(conflictstr)
+            conflictstr = b"changed files overlap with %s" % conflictstr
         else:
             conflictstr = b'no overlap'