Mercurial > hg
comparison setup.py @ 44202:a7f8160cc4e4
setup: don't skip the search for global hg.exe if there is no local instance
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.
Differential Revision: https://phab.mercurial-scm.org/D8038
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 28 Jan 2020 22:27:30 -0500 |
parents | e1b8b4e4f496 |
children | 15eb90965a00 |
comparison
equal
deleted
inserted
replaced
44201:64e104ca555e | 44202:a7f8160cc4e4 |
---|---|
321 # Run a simple "hg log" command just to see if using hg from the user's | 321 # Run a simple "hg log" command just to see if using hg from the user's |
322 # path works and can successfully interact with this repository. Windows | 322 # path works and can successfully interact with this repository. Windows |
323 # gives precedence to hg.exe in the current directory, so fall back to the | 323 # gives precedence to hg.exe in the current directory, so fall back to the |
324 # python invocation of local hg, where pythonXY.dll can always be found. | 324 # python invocation of local hg, where pythonXY.dll can always be found. |
325 check_cmd = ['log', '-r.', '-Ttest'] | 325 check_cmd = ['log', '-r.', '-Ttest'] |
326 if os.name != 'nt': | 326 if os.name != 'nt' or not os.path.exists("hg.exe"): |
327 try: | 327 try: |
328 retcode, out, err = runcmd(hgcmd + check_cmd, hgenv) | 328 retcode, out, err = runcmd(hgcmd + check_cmd, hgenv) |
329 except EnvironmentError: | 329 except EnvironmentError: |
330 retcode = -1 | 330 retcode = -1 |
331 if retcode == 0 and not filterhgerr(err): | 331 if retcode == 0 and not filterhgerr(err): |