<p>pip.vcs.git harus menggunakan --work-tree daripada implisit $CWD</p>

Dibuat pada 12 Agu 2013  ·  4Komentar  ·  Sumber: pypa/pip

Backend Git ( pip.vcs.git ) bergantung pada fakta bahwa Git menggunakan $CWD sebagai direktori repositori. Masalahnya adalah variabel lingkungan $GIT_DIR / $GIT_WORK_TREE dapat digunakan untuk menimpanya, dan kemudian repositori yang sama akan selalu ditanyakan alih-alih yang diidentifikasi dalam location .

Jadi alih-alih $CWD , pip.vcs.git harus selalu menentukan --work-tree .

http://git-scm.com/blog/2010/04/11/environment.html

Atau, itu bisa saja menghapus variabel-variabel itu sebelum menjalankan git .

vcs auto-locked bug

Komentar yang paling membantu

Saya dapat mengkonfirmasi masalah ini, masalah yang sama di sini.

Contoh dunia nyata yang memicu perilaku yang tidak diinginkan ini adalah menjalankan pip dari dalam kait pasca-pembaruan repositori git.
Di dalam kait, GIT_DIR akan disetel ke '.', yang menyebabkan pip beroperasi pada repositori tersebut alih-alih pada repositori yang dikloning oleh pip.

Selain mengatur --work-tree secara eksplisit, solusi lain adalah menghapus pengaturan GIT_DIR (dan GIT_WORK_TREE).

Semua 4 komentar

Bisakah Anda memberikan kasus uji yang menunjukkan di mana pip gagal tepatnya?

Mempersiapkan:

$ mkvirtualenv pip-test
$ pip install -e [email protected]:jkbr/httpie.git#egg=httpie

Gagal:

$ GIT_DIR=/foo pip freeze
Error when trying to get requirement for VCS system Command /usr/local/bin/git config remote.origin.url failed with error code 1 in /Users/jakub/.virtualenvs/pip-test/src/httpie, falling back to uneditable format
Could not determine repository location of ~/.virtualenvs/pip-test/src/httpie
Pygments==1.6
## !! Could not determine repository location
httpie==0.6.0
requests==1.2.3
wsgiref==0.1.2

GIT_DIR akan ditetapkan misalnya dalam skrip yang dipanggil sebagai kait Git.

Saya dapat mengkonfirmasi masalah ini, masalah yang sama di sini.

Contoh dunia nyata yang memicu perilaku yang tidak diinginkan ini adalah menjalankan pip dari dalam kait pasca-pembaruan repositori git.
Di dalam kait, GIT_DIR akan disetel ke '.', yang menyebabkan pip beroperasi pada repositori tersebut alih-alih pada repositori yang dikloning oleh pip.

Selain mengatur --work-tree secara eksplisit, solusi lain adalah menghapus pengaturan GIT_DIR (dan GIT_WORK_TREE).

Saya memposting PR #4666 untuk mengatasi ini. (Perhatikan bahwa pengujiannya baik-baik saja meskipun ikon Travis CI menunjukkan kegagalan. Tampaknya ada kelemahan dalam pengujian Travis CI yang dijalankan belakangan ini.)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat