<p>يجب أن يستخدم pip.vcs.git --work-tree بدلاً من $ CWD الضمني</p>

تم إنشاؤها على ١٢ أغسطس ٢٠١٣  ·  4تعليقات  ·  مصدر: pypa/pip

تعتمد الواجهة الخلفية لـ Git ( pip.vcs.git ) على حقيقة أن Git يستخدم $CWD كدليل المستودع. تكمن المشكلة في أن متغيرات البيئة $GIT_DIR / $GIT_WORK_TREE يمكن استخدامها للكتابة فوق ذلك ، ومن ثم سيتم الاستعلام دائمًا عن المستودع نفسه بدلاً من المتغير المحدد في location .

لذا بدلاً من ذلك ، يجب أن يحدد $CWD و pip.vcs.git دائمًا --work-tree .

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

بدلاً من ذلك ، يمكن فقط إلغاء ضبط هذه المتغيرات قبل استدعاء git .

vcs auto-locked bug

التعليق الأكثر فائدة

يمكنني تأكيد هذه المشكلة ، نفس المشكلة هنا.

أحد الأمثلة الواقعية على تشغيل هذا السلوك غير المرغوب فيه هو تشغيل النقطة من داخل خطاف ما بعد التحديث في مستودع git.
سيتم تعيين GIT_DIR داخل الخطاف على "." ، مما يؤدي إلى عمل النقطة في هذا المستودع ذاته بدلاً من المستودع المستنسخ بواسطة النقطة.

إلى جانب إعداد شجرة العمل بشكل صريح ، سيكون هناك حل آخر يتمثل في إلغاء ضبط GIT_DIR (و GIT_WORK_TREE).

ال 4 كومينتر

هل يمكنك تقديم حالة اختبار توضح مكان فشل النقطة بالضبط؟

اقامة:

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

يفشل:

$ 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 على سبيل المثال في البرامج النصية التي يتم استدعاؤها كـ Git hooks.

يمكنني تأكيد هذه المشكلة ، نفس المشكلة هنا.

أحد الأمثلة الواقعية على تشغيل هذا السلوك غير المرغوب فيه هو تشغيل النقطة من داخل خطاف ما بعد التحديث في مستودع git.
سيتم تعيين GIT_DIR داخل الخطاف على "." ، مما يؤدي إلى عمل النقطة في هذا المستودع ذاته بدلاً من المستودع المستنسخ بواسطة النقطة.

إلى جانب إعداد شجرة العمل بشكل صريح ، سيكون هناك حل آخر يتمثل في إلغاء ضبط GIT_DIR (و GIT_WORK_TREE).

لقد أرسلت PR # 4666 لمعالجة هذا الأمر. (لاحظ أن الاختبارات جيدة على الرغم من أن رمز Travis CI يظهر فشلًا. يبدو أن هناك تقشرًا في اختبار Travis CI الذي يتم تشغيله مؤخرًا.)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات