ทำไม git-svn ไม่เคารพ $ PATH ของฉัน


1

ฉันติดตั้งแล้ว git และ svn กับ homebrew บน mac ของฉันใช้งาน 10.7.4 มี svn สองรุ่นในเครื่องของฉันและฉันได้ตั้งค่าพา ธ ของฉันเพื่อตรวจสอบสิ่งที่เป็นภาษาฮิบรูก่อน น่าเสียดายที่ git ใช้ svn รุ่นที่ไม่ถูกต้องดังนั้นจึงติดตั้งเป็นรุ่นของตัวเองที่อื่นหรือไม่สนใจเส้นทางของฉัน

$ git --version
git version 1.7.10.4

$ svn --version
svn, version 1.7.5 (r1336830)

$ git svn --version
git-svn version 1.7.10.4 (svn 1.6.17)

$ /usr/bin/svn --version
svn, version 1.6.17 (r1128011)

$ which git svn
/usr/local/bin/git
/usr/local/bin/svn

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/local/git/bin

ฉันดู git-svn.pl สั้น ๆ แต่น่าเสียดายที่ฉันไม่รู้จัก Perl และฉันไม่สามารถระบุได้ว่าเส้นทางนั้นถูกกำหนดไว้ที่นั่นหรือไม่ ดังนั้นทำไม git จึงไม่ใช้ path ของฉันและฉันจะทำให้มันใช้ svn เวอร์ชั่นที่ฉันต้องการได้อย่างไร?

ขอบคุณที่อ่าน.

คำตอบ:


2

git svn ไม่ได้ใช้งาน $PATH เลย มันกำลังใช้ $SVN::Core::VERSIONอย่างที่คุณเห็นใน git-svn.perl, ll 408 - 412 ใน git version 1.7.11.rc3:

sub version {
        ::_req_svn();
        print "git-svn version $VERSION (svn $SVN::Core::VERSION)\n";
        exit 0;
}

ทั้ง /usr/local/bin/svn ไม่ /usr/bin/svn ควบคุมเวอร์ชันนี้ ฉันสามารถทำซ้ำปัญหาของคุณใน OSX 10.7.4 และแก้ไขด้วยผ่าน เปลือก 'cpan':

sudo cpan;   # sudo required on the mac for the subversion make
cpan[1]> install SVN::Core

ตี Enter ทุก ๆ ครั้งและเก็บค่าเริ่มต้น อาจใช้เวลาสักครู่และอาจต้องติดตั้งการอ้างอิงบางอย่าง ท้องถิ่นของฉันมีทุกสิ่งที่ฉันต้องการ แต่ฉันมีห้องสมุดสุ่มที่ไม่ดีต่อสุขภาพ ชนิด exit หรือ Ctrl+C หลังจากเสร็จสิ้นการรวบรวม ตอนนี้ลอง git svn --version:

$ git svn --version
git-svn version 1.7.11.rc3.5.g2ae48a9 (svn 1.7.3)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.