# HG changeset patch # User Matt Harbison # Date 2018-11-24 03:27:57 # Node ID 246b61bfdc2f1b21dc3f61d7b6ee58caaf297e95 # Parent 72d88a975655587d4fd9ebb365ff82285c32db64 procutil: don't allow the main 'hg' script to be treated as the Windows exe Previously, there were a handful of errors like this: $ hg prefetch --repack (running background incremental repack) + abort: %1 is not a valid Win32 application + [255] CreateProcess() doesn't append .exe when `lpApplicationName` contains a path, and a python script isn't directly executable. diff --git a/mercurial/utils/procutil.py b/mercurial/utils/procutil.py --- a/mercurial/utils/procutil.py +++ b/mercurial/utils/procutil.py @@ -241,7 +241,7 @@ def hgexecutable(): _sethgexecutable(encoding.environ['EXECUTABLEPATH']) else: _sethgexecutable(pycompat.sysexecutable) - elif (os.path.basename( + elif (not pycompat.iswindows and os.path.basename( pycompat.fsencode(getattr(mainmod, '__file__', ''))) == 'hg'): _sethgexecutable(pycompat.fsencode(mainmod.__file__)) else: