safehasattr: pass attribute name as string instead of bytes
This is a step toward replacing `util.safehasattr` usage with plain `hasattr`.
The builtin function behave poorly in Python2 but this was fixed in Python3.
These change are done one by one as they tend to have a small odd to trigger
puzzling breackage.
--- a/mercurial/patch.py Thu Feb 02 17:33:56 2023 +0100
+++ b/mercurial/patch.py Thu Feb 02 17:34:09 2023 +0100
@@ -1703,7 +1703,7 @@
newhunks = []
for c in hunks:
- if util.safehasattr(c, b'reversehunk'):
+ if util.safehasattr(c, 'reversehunk'):
c = c.reversehunk()
newhunks.append(c)
return newhunks