Submitter | phabricator |
---|---|
Date | Sept. 2, 2019, 6:52 a.m. |
Message ID | <9ed63261b6312a93a807e8c3d28b0b4c@localhost.localdomain> |
Download | mbox | patch |
Permalink | /patch/41464/ |
State | Not Applicable |
Headers | show |
Comments
> @@ -245,8 +245,11 @@ > pycompat.fsencode(getattr(mainmod, '__file__', ''))) == 'hg'): > _sethgexecutable(pycompat.fsencode(mainmod.__file__)) > else: > - exe = findexe('hg') or os.path.basename(sys.argv[0]) > - _sethgexecutable(pycompat.fsencode(exe)) > + exe = findexe('hg') > + if exe: > + _sethgexecutable(pycompat.fsencode(exe)) > + else: > + _sethgexecutable(os.path.basename(pycompat.sysargv[0])) `findexe()` is supposed to return bytes. If not always, it's the bug of `findexe()`.
yuja added a comment. > @@ -245,8 +245,11 @@ > > pycompat.fsencode(getattr(mainmod, '__file__', ''))) == 'hg'): > _sethgexecutable(pycompat.fsencode(mainmod.__file__)) > else: > > - exe = findexe('hg') or os.path.basename(sys.argv[0]) > - _sethgexecutable(pycompat.fsencode(exe)) > > + exe = findexe('hg') > + if exe: > + _sethgexecutable(pycompat.fsencode(exe)) > + else: > + _sethgexecutable(os.path.basename(pycompat.sysargv[0])) `findexe()` is supposed to return bytes. If not always, it's the bug of `findexe()`. REPOSITORY rHG Mercurial CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D6782/new/ REVISION DETAIL https://phab.mercurial-scm.org/D6782 To: martinvonz, #hg-reviewers Cc: yuja, mercurial-devel
Patch
diff --git a/mercurial/utils/procutil.py b/mercurial/utils/procutil.py --- a/mercurial/utils/procutil.py +++ b/mercurial/utils/procutil.py @@ -245,8 +245,11 @@ pycompat.fsencode(getattr(mainmod, '__file__', ''))) == 'hg'): _sethgexecutable(pycompat.fsencode(mainmod.__file__)) else: - exe = findexe('hg') or os.path.basename(sys.argv[0]) - _sethgexecutable(pycompat.fsencode(exe)) + exe = findexe('hg') + if exe: + _sethgexecutable(pycompat.fsencode(exe)) + else: + _sethgexecutable(os.path.basename(pycompat.sysargv[0])) return _hgexecutable def _sethgexecutable(path):