On Tue, Mar 14, 2006 at 01:58:09PM -0800, Linus Torvalds wrote: > > > On Tue, 14 Mar 2006, Qingning Huo wrote: > > > > The system have GNU git installed at /usr/bin/git. I installed git-core > > to ~/opt/bin. ~/opt/bin is in my PATH, but is after /usr/bin. I have > > set alias git="$HOME/opt/bin/git". > > This should not be a problem with the modern "git.c" wrapper. It > _should_, if you call it with the full path, automatically prepend that > path to the PATH when executing sub-commands. > > So if you run git as "$HOME/opt/bin/git", the PATH _should_ be > - first the "PREFIX/bin" path as defined by the build > - second the "$HOME/opt/bin/" path as defined by the fact that you ran > git from that path > - finally the normal $PATH. > > To check this out, do this: > > ln -s /usr/bin/printenv ~/opt/bin/git-printenv > git printenv > > and you should see the proper PATH that git ends up using internally that > way. > > So your problem seems to be that you do "git-pull", when you really should > do "git pull" (where that wrapper will set up PATH for you). Since you > don't use the wrapper, the scripts end up doing the wrong thing. > Thanks for your detailed explanation. Yes, "git push" and "git pull" both work fine out of the box. That is the good thing. But, $ grep git git-pull.sh . git-sh-setup orig_head=$(git-rev-parse --verify HEAD) || die "Pulling into a black hole?" git-fetch --update-head-ok "$@" || exit 1 curr_head=$(git-rev-parse --verify HEAD) git-read-tree -u -m "$orig_head" "$curr_head" || var=`git repo-config --get pull.octopus` var=`git repo-config --get pull.twohead` merge_name=$(git-fmt-merge-msg <"$GIT_DIR/FETCH_HEAD") git-merge $no_summary $no_commit $strategy_args "$merge_name" HEAD $merge_head We have "git-read-tree" and "git repo-config" at the same time. Are there any rules saying which form should be preferred? How about pick one form and stick to it? If we uniformly call git helper programs/scripts with "git helper" style, would git(1) append two paths to PATH everytime it is being invoked? For example, "git pull" -> "git repo-config" would prepend ~/opt/bin four times to PATH. This wouldn't be very effecient. Regards, Qingning - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html