From 98bae92fda9ca01d01b2e9fb70b04b00470e7bec Mon Sep 17 00:00:00 2001 From: Ben Keene Date: Wed, 13 Nov 2019 14:08:13 -0500 Subject: [PATCH] Added general variable git-p4.binary and added a default for windows of 'P4.EXE' Signed-off-by: Ben Keene --- Documentation/git-p4.txt | 5 +++++ git-p4.py | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Documentation/git-p4.txt b/Documentation/git-p4.txt index 3494a1db3ebf49..e206e692505f26 100644 --- a/Documentation/git-p4.txt +++ b/Documentation/git-p4.txt @@ -547,6 +547,11 @@ git-p4.retries:: Set the value to 0 to disable retries or if your p4 version does not support retries (pre 2012.2). +git-p4.binary:: + Specifies the p4 executable used by git-p4 to process commands. + The default value for Windows is `p4.exe` and for all other + systems the default is `p4`. + Clone and sync variables ~~~~~~~~~~~~~~~~~~~~~~~~ git-p4.syncFromOrigin:: diff --git a/git-p4.py b/git-p4.py index 6e8b3a26cd297c..160d966ee1717c 100755 --- a/git-p4.py +++ b/git-p4.py @@ -26,6 +26,8 @@ import zlib import ctypes import errno +import os.path +from os import path # support basestring in python3 try: @@ -85,7 +87,17 @@ def p4_build_cmd(cmd): location. It means that hooking into the environment, or other configuration can be done more easily. """ - real_cmd = ["p4"] + # Look for the P4 binary + p4bin = gitConfig("git-p4.binary") + real_cmd = [] + if p4bin != "": + if path.exists(p4bin): + real_cmd = [p4bin] + if real_cmd == []: + if (platform.system() == "Windows"): + real_cmd = ["p4.exe"] + else: + real_cmd = ["p4"] user = gitConfig("git-p4.user") if len(user) > 0: