Guardando nella fonte di git, c'è un commento in 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.
*/
Se si chiama git --exec-path
, si finisce per chiamare const char *git_exec_path(void)
in exec_cmd.c. Che assomiglia a questo:
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);
Ora, _argv_exec_path_ è impostato quando dici --exec-path=/some/where
così possono essere scontati. Hai affermato che la variabile di ambiente non è impostata. GIT_EXEC_PATH
viene definito durante la compilazione nello Makefile. Andando indietro, sembra essere definito come solo libexec/git-core
. Quindi, dobbiamo guardare a ciò che fa invece system_path().
Non sono sicuro se RUNTIME_PREFIX
è definito per voi. Ma mentre annoto nel Makefile, ho notato che il valore prefix predefinito è $(HOME)
. Sospetto che questa possa essere la causa dei tuoi problemi.
La risposta più semplice è quello di mettere questo in ~/.bashrc
:
export GIT_EXEC_PATH=/opt/local/libexec/git-core
Se volete saperne di più su ciò che sta succedendo, probabilmente dovrete ricompilare git utilizzando port -d upgrade -f git-core
(o simili) e guardare da vicino nel log di compilazione per vedere dove viene impostato il prefisso. Per inciso, port cat git-core
mostra un uso intenso di ${prefix}
quindi dovrebbe (si spera) essere ovvio.
fonte
2009-09-23 13:32:37
Ho incontrato lo stesso problema, quando ho cercato di incidere git binario di pacchetto Xcode. 'Ln -s /Applications/Xcode.app/Contents/Developer/usr/bin/git ~/bin/git' – shakthi