[PATCH] Make rebase smarter
- From
Steven Walter <stevenrwalter@gmail.com>
- Date
- Oct 26, 2007, 04:41 UTC
- Message-ID
- <1193373682-3608-1-git-send-email-stevenrwalter@gmail.com>
- In-Reply-To
- <1193328386.4522.352.camel@cacharro.xalalinux.org>
It is a common workflow to run "git fetch; git rebase origin/<foo>" Where foo is the remote tracking branch. git-rebase should default to using the remote tracking branch if no other ref is given.
Signed-off-by: Steven Walter <stevenrwalter@gmail.com> --- git-rebase.sh | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/git-rebase.sh b/git-rebase.sh index 058fcac..1a2b51b 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -261,8 +261,19 @@ case "$diff" in ;; esac -# The upstream head must be given. Make sure it is valid. upstream_name="$1" +# Default to the remote tracking branch if we have one +if [ -z "$upstream_name" ] +then + curr_branch=$(git symbolic-ref -q HEAD) + curr_branch=${curr_branch//refs\/heads\//} + merge=$(git config branch.$curr_branch.merge) + remote=$(git config branch.$curr_branch.remote) + fetch=$(git config remote.$remote.fetch) + + expanded=$(git fetch--tool expand-refs-wildcard "0000000000000000000000000000000000000000 $merge" "$remote" "$fetch") + upstream_name=${expanded/#*:/} +fi upstream=`git rev-parse --verify "${upstream_name}^0"` || die "invalid upstream $upstream_name"
-- 1.5.3.4.1.gb4ad62-dirty