← 返回首页
Revert "use `strings` instead of `uname` to detect cygwin" · gitpython-developers/GitPython@1731c1e · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

Commit 1731c1e

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

1 file changed

Lines changed: 11 additions & 12 deletions

File tree

‎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)

Footer

© 2026 GitHub, Inc.