Skip to content

Commit 1731c1e

Browse files
committed
Revert "use strings instead of uname to detect cygwin"
This reverts commit c441316.
1 parent 58f7710 commit 1731c1e

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

git/util.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -457,24 +457,23 @@ def _is_cygwin_git(git_executable: str) -> bool:
457457
if is_cygwin is None:
458458
is_cygwin = False
459459
try:
460-
git_cmd = pathlib.Path(git_executable)
461-
git_dir = git_cmd.parent
462-
460+
git_dir = osp.dirname(git_executable)
463461
if not git_dir:
464462
res = py_where(git_executable)
465-
git_dir = pathlib.Path(res[0]).parent if res else ""
463+
git_dir = osp.dirname(res[0]) if res else ""
466464

467-
# If it's a cygwin git, it'll have cygwin in the output of `strings git`
468-
strings_cmd = pathlib.Path(git_dir, "strings")
465+
# Just a name given, not a real path.
466+
uname_cmd = osp.join(git_dir, "uname")
469467

470-
if not (pathlib.Path(strings_cmd).is_file() and os.access(strings_cmd, os.X_OK)):
471-
_logger.debug(f"Failed checking if running in CYGWIN: {strings_cmd} is not an executable")
472-
_is_cygwin_cache[git_executable] = False
468+
if not (pathlib.Path(uname_cmd).is_file() and os.access(uname_cmd, os.X_OK)):
469+
_logger.debug(f"Failed checking if running in CYGWIN: {uname_cmd} is not an executable")
470+
_is_cygwin_cache[git_executable] = is_cygwin
473471
return is_cygwin
474472

475-
process = subprocess.Popen([strings_cmd, git_cmd], stdout=subprocess.PIPE, text=True)
476-
strings_output, _ = process.communicate()
477-
is_cygwin = any(x for x in strings_output if "cygwin" in x.lower())
473+
process = subprocess.Popen([uname_cmd], stdout=subprocess.PIPE, universal_newlines=True)
474+
uname_out, _ = process.communicate()
475+
# retcode = process.poll()
476+
is_cygwin = "CYGWIN" in uname_out
478477
except Exception as ex:
479478
_logger.debug("Failed checking if running in CYGWIN due to: %r", ex)
480479
_is_cygwin_cache[git_executable] = is_cygwin

0 commit comments

Comments
 (0)