Git के स्रोत में देख रहे हैं, वहाँ git.c में एक टिप्पणी है:
/*
* We use PATH to find git commands, but we prepend some higher
* precedence paths: the "--exec-path" option, the GIT_EXEC_PATH
* environment, and the $(gitexecdir) from the Makefile at build
* time.
*/
आप git --exec-path
फोन हैं, तो आप exec_cmd.c में const char *git_exec_path(void)
बुला अंत। यही कारण है कि इस तरह दिखता है:
const char *env;
if (argv_exec_path)
return argv_exec_path;
env = getenv(EXEC_PATH_ENVIRONMENT);
if (env && *env) {
return env;
}
return system_path(GIT_EXEC_PATH);
अब, _argv_exec_path_ सेट किया गया है जब आप कहते हैं --exec-path=/some/where
तो रियायती जा सकता है। आपने कहा है कि पर्यावरण चर सेट नहीं है। GIT_EXEC_PATH
को Makefile में संकलन के दौरान परिभाषित किया गया है। पीछे की तरफ जाना, ऐसा लगता है कि इसे libexec/git-core
के रूप में परिभाषित किया गया है। इसलिए, हमें यह देखने की ज़रूरत है कि system_path() इसके बजाय क्या करता है।
मुझे यकीन नहीं है कि RUNTIME_PREFIX
आपके लिए परिभाषित किया गया है या नहीं। लेकिन मेकफ़ाइल में नाकते समय, मैंने नोटिस किया कि prefix$(HOME)
पर डिफ़ॉल्ट है। मुझे संदेह है कि यह आपकी समस्याओं का कारण हो सकता है।
सरल उत्तर ~/.bashrc
में इस डाल करने के लिए है:
export GIT_EXEC_PATH=/opt/local/libexec/git-core
आप क्या हो रहा है के बारे में और अधिक जानकारी प्राप्त करना चाहते हैं, तो आप शायद port -d upgrade -f git-core
का उपयोग कर Git पुनः संकलित (या समान) और बारीकी से देखने के लिए होगा यह देखने के लिए बिल्ड लॉग पर जहां उपसर्ग सेट किया जा रहा है। संयोग से, port cat git-core
${prefix}
का भारी उपयोग दिखाता है, इसलिए इसे (उम्मीद है) स्पष्ट होना चाहिए।
स्रोत
2009-09-23 13:32:37
मैं, एक ही समस्या में पड़ गए जब मैं Xcode पैकेज से बाहर Git द्विआधारी हैक करने की कोशिश की। 'ln -s/अनुप्रयोग /Xcode.app/Contents/Developer/usr/bin/git ~/bin/git' – shakthi