This is an archive of the discontinued Mercurial Phabricator instance.

setup: don't skip the search for global hg.exe if there is no local instance
ClosedPublic

Authored by mharbison72 on Jan 29 2020, 12:29 AM.

Details

Summary

The point of trying not to blindly execute hg on Windows is that the local
hg.exe would be given precedence, and if py3 isn't on PATH, it errors out with a
modal dialog. But that's not a problem if there is no local executable that
could be run.

The problem that I recently ran into was I upgraded the repo format to use zstd.
But doing a make clean deletes all of the supporting libraries, causing the
next run to abort with a message about not understanding the
revlog-compression-zstd requirement. By getting rid of the local executable
in the previous commit when cleaning, we avoid leaving a broken executable
around, and avoid the py3 PATH problem too. There is still a small hole in that
hg.exe needs to be deleted before switching between py2/py3/PyOxidizer builds,
because the zstd module won't load. But that seems like good hygiene anyway.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.