Patchwork [STABLE] win32: use explicit path to "python.exe" only if it exists

login
register
mail settings
Submitter Katsunori FUJIWARA
Date April 25, 2013, 4:16 p.m.
Message ID <230e3fb873c08e1d0454.1366906560@juju>
Download mbox | patch
Permalink /patch/1480/
State Accepted
Commit f01a351db79106ba96ac6d527cf69944fd98e665
Headers show

Comments

Katsunori FUJIWARA - April 25, 2013, 4:16 p.m.
# HG changeset patch
# User FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
# Date 1366906323 -32400
#      Fri Apr 26 01:12:03 2013 +0900
# Branch stable
# Node ID 230e3fb873c08e1d04542c1d85db758dcc452492
# Parent  70675d77fd4a78d3e57723550d9f3031345d38e4
win32: use explicit path to "python.exe" only if it exists

Before this patch, "hg.bat" for Windows environment always uses
"%~dp0..\python" as explicit path to "python.exe".

This path may not be valid in some cases.

For example, on the environment using "virtualenv" python package,
both "python.exe" and "hg.bat" are placed in the same directory.  In
this case, "python.exe" should be found on PATH, because virtualenv
activation script puts "python.exe" on the PATH.

This patch uses explicit path to "python.exe" only if it exists, and
expects that "python.exe" can be found on PATH otherwise.
Matt Mackall - April 27, 2013, 5:22 p.m.
On Fri, 2013-04-26 at 01:16 +0900, FUJIWARA Katsunori wrote:
> # HG changeset patch
> # User FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
> # Date 1366906323 -32400
> #      Fri Apr 26 01:12:03 2013 +0900
> # Branch stable
> # Node ID 230e3fb873c08e1d04542c1d85db758dcc452492
> # Parent  70675d77fd4a78d3e57723550d9f3031345d38e4
> win32: use explicit path to "python.exe" only if it exists

Queued for stable, thanks.

Patch

diff --git a/contrib/win32/hg.bat b/contrib/win32/hg.bat
--- a/contrib/win32/hg.bat
+++ b/contrib/win32/hg.bat
@@ -4,9 +4,14 @@ 
 setlocal
 set HG=%~f0
 
-rem Use a full path to Python (relative to this script) as the standard Python
-rem install does not put python.exe on the PATH...
+rem Use a full path to Python (relative to this script) if it exists,
+rem as the standard Python install does not put python.exe on the PATH...
+rem Otherwise, expect that python.exe can be found on the PATH.
 rem %~dp0 is the directory of this script
 
-"%~dp0..\python" "%~dp0hg" %*
+if exist "%~dp0..\python.exe" (
+    "%~dp0..\python" "%~dp0hg" %*
+) else (
+    python "%~dp0hg" %*
+)
 endlocal