From 99a92f928fd02a87d841a8bb19511e7ce526819d Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 17 Aug 2005 15:19:57 -0700 Subject: Make rebase script saner. It did not check to see if the working tree was clean and matched the commit we were starting out as, resulting in the initial rebased commit including whatever dirty state the working tree has had. Signed-off-by: Junio C Hamano diff --git a/git-rebase-script b/git-rebase-script index 026225a..7b1d490 100755 --- a/git-rebase-script +++ b/git-rebase-script @@ -17,16 +17,19 @@ case "$#,$1" in shift ;; esac +git-update-cache --refresh || exit + case "$#" in -1) upstream=`git-rev-parse --verify "$1"` && - ours=`git-rev-parse --verify HEAD` || exit - ;; -2) upstream=`git-rev-parse --verify "$1"` && - ours=`git-rev-parse --verify "$2"` || exit - ;; -*) echo >&2 "$usage"; exit 1 ;; +1) ours_symbolic=HEAD ;; +2) ours_symbolic="$2" ;; +*) die "$usage" ;; esac +upstream=`git-rev-parse --verify "$1"` && +ours=`git-rev-parse --verify "$ours_symbolic^` || exit +test "$(git-diff-cache --cached "$ours")" = "" || +die "Your working tree does not match $ours_symbolic." + git-read-tree -m -u $ours $upstream && git-rev-parse --verify "$upstream^0" >"$GIT_DIR/HEAD" || exit -- cgit v0.10.2-6-g49f6