Re: [PATCH] Invoke git-repo-config directly.
- From
- Qingning Huo <qhuo@mayhq.co.uk>
- Date
- Mar 14, 2006, 22:40 UTC
- Message-ID
- <20060314224027.GB14733@localhost.localdomain>
- In-Reply-To
- <Pine.LNX.4.64.0603141351470.3618@g5.osdl.org>
On Tue, Mar 14, 2006 at 01:58:09PM -0800, Linus Torvalds wrote:
Show 30 quoted lines
> > > 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_headWe 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