<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jun 30, 2019 at 10:42 PM Ludovic Chabant <<a href="mailto:ludovic@chabant.com">ludovic@chabant.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"># HG changeset patch<br>
# User Ludovic Chabant <<a href="mailto:ludovic@chabant.com" target="_blank">ludovic@chabant.com</a>><br>
# Date 1561959530 0<br>
#      Mon Jul 01 05:38:50 2019 +0000<br>
# Branch stable<br>
# Node ID 89e3ab4dcbc56ee72ce1d4d17527337e01d99467<br>
# Parent  90daf413dfc7a7e4762e6445f05c52b123c6188f<br>
py3: broad pass for python3 compatibility<br>
<br>
- ran mercurial's bytify-strings script<br>
- excluded some places where we use strings to pass to setattr()<br>
- re-decode some template funcions' docstrings that were previously encoded<br>
  (probably by the hgloader?)<br>
<br>
diff --git a/hgext3rd/evolve/__init__.py b/hgext3rd/evolve/__init__.py<br>
--- a/hgext3rd/evolve/__init__.py<br>
+++ b/hgext3rd/evolve/__init__.py<br>-@eh.wrapfunction(mercurial.cmdutil, 'tryimportone')<br>
+@eh.wrapfunction(mercurial.cmdutil, b'tryimportone')<br>
 def tryimportone(orig, ui, repo, hunk, parents, opts, *args, **kwargs):<br>
-    expected = {'node': None}<br>
-    if not util.safehasattr(hunk, 'get'): # hg < 4.6<br>
+    expected = {b'node': None}<br>
+    if not util.safehasattr(hunk, b'get'): # hg < 4.6<br>
         oldextract = patch.extract<br>
<br>
         def extract(*args, **kwargs):<br>
@@ -845,12 +845,12 @@<br>
         _getnodefrompatch(hunk, expected)<br>
         ret = orig(ui, repo, hunk, parents, opts, *args, **kwargs)<br>
     created = ret[1]<br>
-    if (opts['obsolete'] and None not in (created, expected['node'])<br>
-        and created != expected['node']):<br>
-        tr = repo.transaction('import-obs')<br>
+    if (opts[b'obsolete'] and None not in (created, expected[b'node'])<br></blockquote><div><br></div><div>Should opts[x], opts.get(x), etc  really use bytes? They usually get passed as **opts, which means their keys are str, I think.</div><div><br></div></div></div>