From 4282c4fbddfeae3383c6c327e2ca98b25500ea31 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sun, 7 Aug 2005 15:51:09 -0700 Subject: Teach format-patch, rebase and cherry a..b format Although these commands take only begin and end, not necessarily generic SHA1 expressions rev-parse supports, supporting a..b notation is good for consistency. This commit adds such without breaking backward compatibility. Signed-off-by: Junio C Hamano --- git-rebase-script | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'git-rebase-script') diff --git a/git-rebase-script b/git-rebase-script index 83289845a..7779813d1 100755 --- a/git-rebase-script +++ b/git-rebase-script @@ -3,25 +3,32 @@ # Copyright (c) 2005 Junio C Hamano. # +. git-sh-setup-script || die "Not a git archive." + usage="usage: $0 "' [] Uses output from git-cherry to rebase local commits to the new head of upstream tree.' -: ${GIT_DIR=.git} +case "$#,$1" in +1,*..*) + upstream=$(expr "$1" : '\(.*\)\.\.') ours=$(expr "$1" : '.*\.\.\(.*\)$') + set x "$upstream" "$ours" + shift ;; +esac case "$#" in -1) linus=`git-rev-parse --verify "$1"` && - junio=`git-rev-parse --verify HEAD` || exit +1) upstream=`git-rev-parse --verify "$1"` && + ours=`git-rev-parse --verify HEAD` || exit ;; -2) linus=`git-rev-parse --verify "$1"` && - junio=`git-rev-parse --verify "$2"` || exit +2) upstream=`git-rev-parse --verify "$1"` && + ours=`git-rev-parse --verify "$2"` || exit ;; *) echo >&2 "$usage"; exit 1 ;; esac -git-read-tree -m -u $junio $linus && -echo "$linus" >"$GIT_DIR/HEAD" || exit +git-read-tree -m -u $ours $upstream && +echo "$upstream" >"$GIT_DIR/HEAD" || exit tmp=.rebase-tmp$$ fail=$tmp-fail @@ -29,7 +36,7 @@ trap "rm -rf $tmp-*" 0 1 2 3 15 >$fail -git-cherry $linus $junio | +git-cherry $upstream $ours | while read sign commit do case "$sign" in -- cgit v1.2.1