BUG: git bash / python interaction with absolute paths as environment variables in Windows

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Issue: Using Git Bash for Windows (2.34.1-64) and Python 3.9.9, a git
path is incorrectly prepended to environment variables in Python code.

Sample Output of a simple Python script pulling an environment
variable - this is the expected output, where Python is given the
correct environment variables for both absolute directory paths and
non-directory paths - OS should not matter:

(gitfu-XXGUYdp7) C:\Users\Leland\code\gitfu>type foobar.py
from os import environ
from sys import stdout

stdout.write(f'environ: {environ["TEST_DIR_BROKEN"]}\n')
stdout.write(f'environ: {environ["TEST_DIR_WORKING"]}\n')
(gitfu-XXGUYdp7) C:\Users\Leland\code\gitfu>echo %TEST_DIR_BROKEN%
/foo/bar

(gitfu-XXGUYdp7) C:\Users\Leland\code\gitfu>echo %TEST_DIR_WORKING%
foo/bar

(gitfu-XXGUYdp7) C:\Users\Leland\code\gitfu>python foobar.py
environ: /foo/bar
environ: foo/bar

(gitfu-XXGUYdp7) C:\Users\Leland\code\gitfu>powershell Get-Command python.exe

CommandType     Name
Version    Source
-----------     ----
-------    ------
Application     python.exe
3.9.915... C:\Users\Leland\.virtualenvs\gitfu-XXGUYdp7\Scripts\python.exe



(gitfu-XXGUYdp7) C:\Users\Leland\code\gitfu>





Sample output when the same set of commands is run in git bash -
absolute path has been altered the relative path has not been:

$ cat foobar.py
from os import environ
from sys import stdout

stdout.write(f'environ: {environ["TEST_DIR_BROKEN"]}\n')
stdout.write(f'environ: {environ["TEST_DIR_WORKING"]}\n')
Leland@local MINGW64 ~/code/gitfu
$ echo $TEST_DIR_BROKEN
/foo/bar

Leland@local MINGW64 ~/code/gitfu
$ echo $TEST_DIR_WORKING
foo/bar

Leland@local MINGW64 ~/code/gitfu
$ python foobar.py
environ: C:/Users/Leland/AppData/Local/Programs/Git/foo/bar
environ: foo/bar

Leland@local MINGW64 ~/code/gitfu
$ which python
/c/Users/Leland/.virtualenvs/gitfu-XXGUYdp7/Scripts/python

Leland@local MINGW64 ~/code/gitfu
$




Is there anything else I'm missing on why the same Python script would
read environment variables differently than what is read from Git Bash
itself or why the exact same Python code reads the environment
variable correctly when run from a command prompt and not in Git Bash?

In both cases I am using the same Python virtual environment. Other
environment variables (e.g. non-absolute directory paths) appear to be
read correctly. I'm assuming that this is a git issue given the



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux