# [PATCH 1/2] Avoid using the git wrapper in git-rebase.sh.

4 messages from 2006-07-14 to 2006-07-14. Participants: Shawn Pearce, Matthias Lederhofer, Junio C Hamano.
Thread: https://gitlist.dev/t/4880

## Shawn Pearce, 2006-07-14 04:46

Subject: [PATCH 1/2] Avoid using the git wrapper in git-rebase.sh.
Message-ID: <20060714044655.GA1982@spearce.org>
URL: https://gitlist.dev/e/20060714044655.GA1982%40spearce.org

```
Ideally 'shipped' commands (e.g. git-rebase) should avoid calling
the git wrapper when executing other commands to prevent the user
from shadowing those commands with aliases and causing the shipped
command behavior to differ unexpectedly.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 git-rebase.sh |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/git-rebase.sh b/git-rebase.sh
index 1b9e986..6d06665 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -131,7 +131,7 @@ do
 			finish_rb_merge
 			exit
 		fi
-		git am --resolved --3way --resolvemsg="$RESOLVEMSG"
+		git-am --resolved --3way --resolvemsg="$RESOLVEMSG"
 		exit
 		;;
 	--skip)
@@ -150,7 +150,7 @@ do
 			finish_rb_merge
 			exit
 		fi
-		git am -3 --skip --resolvemsg="$RESOLVEMSG"
+		git-am -3 --skip --resolvemsg="$RESOLVEMSG"
 		exit
 		;;
 	--abort)
@@ -163,7 +163,7 @@ do
 		else
 			die "No rebase in progress?"
 		fi
-		git reset --hard ORIG_HEAD
+		git-reset --hard ORIG_HEAD
 		exit
 		;;
 	--onto)
@@ -231,7 +231,7 @@ esac
 
 # The upstream head must be given.  Make sure it is valid.
 upstream_name="$1"
-upstream=`git rev-parse --verify "${upstream_name}^0"` ||
+upstream=`git-rev-parse --verify "${upstream_name}^0"` ||
     die "invalid upstream $upstream_name"
 
 # If a hook exists, give it a chance to interrupt
@@ -250,7 +250,7 @@ case "$#" in
 	git-checkout "$2" || usage
 	;;
 *)
-	branch_name=`git symbolic-ref HEAD` || die "No current branch"
+	branch_name=`git-symbolic-ref HEAD` || die "No current branch"
 	branch_name=`expr "z$branch_name" : 'zrefs/heads/\(.*\)'`
 	;;
 esac
@@ -288,7 +288,7 @@ fi
 if test -z "$do_merge"
 then
 	git-format-patch -k --stdout --full-index "$upstream"..ORIG_HEAD |
-	git am --binary -3 -k --resolvemsg="$RESOLVEMSG"
+	git-am --binary -3 -k --resolvemsg="$RESOLVEMSG"
 	exit $?
 fi
 
-- 
1.4.1.gd3d5

```

## Matthias Lederhofer, 2006-07-14 16:10

Subject: Re: [PATCH 1/2] Avoid using the git wrapper in git-rebase.sh.
Message-ID: <E1G1QFc-0006FY-KE@moooo.ath.cx>
URL: https://gitlist.dev/e/E1G1QFc-0006FY-KE%40moooo.ath.cx
In-Reply-To: <20060714044655.GA1982@spearce.org>

```
Shawn Pearce <spearce@spearce.org> wrote:
> Ideally 'shipped' commands (e.g. git-rebase) should avoid calling
> the git wrapper when executing other commands to prevent the user
> from shadowing those commands with aliases and causing the shipped
> command behavior to differ unexpectedly.
How did you alias an existing command so that the alias gets executed?
That is what I get:
% git repo-config alias.am ls-tree
% GIT_TRACE=1 git am
trace: exec: '/home/matled/local/stow/git/bin/git-am'

```

## Junio C Hamano, 2006-07-14 16:26

Subject: Re: [PATCH 1/2] Avoid using the git wrapper in git-rebase.sh.
Message-ID: <7vpsg8qhj9.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vpsg8qhj9.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20060714044655.GA1982@spearce.org>

```
Shawn Pearce <spearce@spearce.org> writes:

> Ideally 'shipped' commands (e.g. git-rebase) should avoid calling
> the git wrapper when executing other commands to prevent the user
> from shadowing those commands with aliases and causing the shipped
> command behavior to differ unexpectedly.

In order to avoid confusion, we made aliases not to shadow real
commands, so this is not an argument to support this patch.

On distros that package git with gitexecdir set to somewhere not
on normal user $PATH, users are expected to use "git" wrapper to
invoke any commands (including git-rebase, so the user would say
"git rebase"), and "git" wrapper sets up the PATH to contain the
gitexecdir while it runs the subcommands, so spelling them
either way, be it "git am" or "git-am", is just fine.

>
> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
> ---
>  git-rebase.sh |   12 ++++++------
>  1 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/git-rebase.sh b/git-rebase.sh
> index 1b9e986..6d06665 100755
> --- a/git-rebase.sh
> +++ b/git-rebase.sh
> @@ -131,7 +131,7 @@ do
>  			finish_rb_merge
>  			exit
>  		fi
> -		git am --resolved --3way --resolvemsg="$RESOLVEMSG"
> +		git-am --resolved --3way --resolvemsg="$RESOLVEMSG"
>  		exit
>  		;;
>  	--skip)

```

## Shawn Pearce, 2006-07-14 23:28

Subject: Re: [PATCH 1/2] Avoid using the git wrapper in git-rebase.sh.
Message-ID: <20060714232841.GA30169@spearce.org>
URL: https://gitlist.dev/e/20060714232841.GA30169%40spearce.org
In-Reply-To: <7vpsg8qhj9.fsf@assigned-by-dhcp.cox.net>

```
Junio C Hamano <junkio@cox.net> wrote:
> Shawn Pearce <spearce@spearce.org> writes:
> 
> > Ideally 'shipped' commands (e.g. git-rebase) should avoid calling
> > the git wrapper when executing other commands to prevent the user
> > from shadowing those commands with aliases and causing the shipped
> > command behavior to differ unexpectedly.
> 
> In order to avoid confusion, we made aliases not to shadow real
> commands, so this is not an argument to support this patch.

Doh.  I must have missed the emails which decided that...  For some
reason I remember only the emails discussing shadowing happening
but that internal stuff should use 'git-am' to prevent the shadowing
from occuring.  Thanks for the correction.

-- 
Shawn.

```
