# HG changeset patch # User Pierre-Yves David # Date 1675355792 -3600 # Node ID b539c60a79acac62beae6e8d38e7a4b49bed5bfa # Parent d1502345f89c16c0c6867cc85da9d0948545f091 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. diff -r d1502345f89c -r b539c60a79ac mercurial/subrepoutil.py --- a/mercurial/subrepoutil.py Thu Feb 02 17:36:25 2023 +0100 +++ b/mercurial/subrepoutil.py Thu Feb 02 17:36:32 2023 +0100 @@ -384,7 +384,7 @@ Either absolute or relative the outermost repo""" parent = repo chunks = [] - while util.safehasattr(parent, b'_subparent'): + while util.safehasattr(parent, '_subparent'): source = urlutil.url(parent._subsource) chunks.append(bytes(source)) if source.isabs():