Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

installing via "git+file" fails under Windows when url point to different drive-letter #12700

Open
1 task done
SvenRoederer opened this issue May 14, 2024 · 1 comment
Open
1 task done
Labels
S: needs triage Issues/PRs that need to be triaged type: bug A confirmed bug or unintended behavior

Comments

@SvenRoederer
Copy link

Description

I clone an existing git-repo to Windows $TMP unsing src = tempfile.mkdtemp(prefix = 'thrift-src_') and tried to install this via PIP pip install f'thrift@git+file://{src}@@v0.18.1#subdirectory=lib/py'. This will fail, as long as my cwd is on a different drive than $TMP

The git command will not get the correct folder passed and tries to use the cloned one with the tag-name appended.

When I change to src = tempfile.mkdtemp(prefix = 'thrift-src_', dir = '\\source\\project'), the package gets installed without worries. The difference seems only the absence of specifying the drive-letter.

Expected behavior

Pip should be able the install via "git+file://" from any drive / any location

pip version

24.0

Python version

3.11.9

OS

Windows 10

How to Reproduce

  1. change to project folder on different drive than C: (cd d:\test)
  2. git clone https://github.com/apache/thrift C:\sven\AppData\Local\Temp\thrift
  3. pip install thrift@git+file://C:\sven\AppData\Local\Temp\[email protected]#subdirectory=lib/py'

Output

D:\source\project> python tests\automated\test-02_integration-test.py --build-dir build\x64-Debug --keep-env

checking out thrift source to C:\Users\SVEN-B~1\AppData\Local\Temp\thrift-src_ily166m5
Cloning into 'C:\Users\SVEN-B~1\AppData\Local\Temp\thrift-src_ily166m5'...
remote: Enumerating objects: 76881, done.
remote: Counting objects: 100% (62/62), done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 76881 (delta 18), reused 50 (delta 12), pack-reused 76819
Receiving objects: 100% (76881/76881), 32.17 MiB | 5.21 MiB/s, done.
Resolving deltas: 100% (53813/53813), done.
Updating files: 100% (2631/2631), done.
ensure required python dependencies are installed ...
caling pip inside venv: ['D:\\source\\project\\tests\\venv\\Scripts\\pip', 'install', '--use-pep517', '-vvv', 'behave', 'tomli-w', 'thrift@git+file://C:\\Users\\SVEN-B~1\\AppData\\Local\\Temp\\[email protected]#subdirectory=lib/py']
Using pip 24.0 from D:\sven\source\halo\tests\venv\Lib\site-packages\pip (python 3.11)
Non-user install because user site-packages disabled
Created temporary directory: C:\Users\sven-build\AppData\Local\Temp\pip-build-tracker-bgphca_m
Initialized build tracking at C:\Users\sven-build\AppData\Local\Temp\pip-build-tracker-bgphca_m
Created build tracker: C:\Users\sven-build\AppData\Local\Temp\pip-build-tracker-bgphca_m
Entered build tracker: C:\Users\sven-build\AppData\Local\Temp\pip-build-tracker-bgphca_m
Created temporary directory: C:\Users\sven-build\AppData\Local\Temp\pip-install-8zsiaw5k
Created temporary directory: C:\Users\sven-build\AppData\Local\Temp\pip-ephem-wheel-cache-9m1_ina3
Collecting thrift@ git+file://C:****@v0.18.1
  Cloning file://C:****@v0.18.1 -  to c:\users\sven-build\appdata\local\temp\pip-install-8zsiaw5k\thrift_21b80a19cef34137a47bc63f7c58fc15
  Running command git version
  git version 2.45.0.windows.1
  17:25:34.810748 exec-cmd.c:243          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
  17:25:34.821955 git.c:465               trace: built-in: git version
  Running command git clone --filter=blob:none --verbose --progress 'file://C:****@v0.18.1' 'C:\Users\sven-build\AppData\Local\Temp\pip-install-8zsiaw5k\thrift_21b80a19cef34137a47bc63f7c58fc15'
  17:25:34.867245 exec-cmd.c:243          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
  17:25:34.878977 git.c:465               trace: built-in: git clone --filter=blob:none --verbose --progress 'file://C:\Users\SVEN-B~1\AppData\Local\Temp\[email protected]' 'C:\Users\sven-build\AppData\Local\Temp\pip-install-8zsiaw5k\thrift_21b80a19cef34137a47bc63f7c58fc15'
  17:25:35.717641 run-command.c:657       trace: run_command: unset GIT_DIR; GIT_PROTOCOL=version=2 'git-upload-pack '\''C:\Users\SVEN-B~1\AppData\Local\Temp\[email protected]'\'''
  Cloning into 'C:\Users\sven-build\AppData\Local\Temp\pip-install-8zsiaw5k\thrift_21b80a19cef34137a47bc63f7c58fc15'...
  17:25:35.843430 exec-cmd.c:243          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
  17:25:35.845459 git.c:465               trace: built-in: git upload-pack 'C:\Users\SVEN-B~1\AppData\Local\Temp\[email protected]'
  fatal: 'C:\Users\SVEN-B~1\AppData\Local\Temp\[email protected]' does not appear to be a git repository
  fatal: Could not read from remote repository.

D:\source\project>

Code of Conduct

@SvenRoederer SvenRoederer added S: needs triage Issues/PRs that need to be triaged type: bug A confirmed bug or unintended behavior labels May 14, 2024
@SvenRoederer
Copy link
Author

While writing this I found that PIP fails, as soon as a dive-letter is supplied. Cloning to D:\test-folder and giving the full path to pip, will fail too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S: needs triage Issues/PRs that need to be triaged type: bug A confirmed bug or unintended behavior
Projects
None yet
Development

No branches or pull requests

1 participant