Re: [PATCH] Invoke git-repo-config directly.
From: Qingning Huo <hidden>
Date: 2016-06-15 22:42:21
On Tue, Mar 14, 2006 at 01:58:09PM -0800, Linus Torvalds wrote:
On Tue, 14 Mar 2006, Qingning Huo wrote:quoted
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