From: Junio C Hamano Date: Wed, 17 Aug 2005 22:19:57 +0000 (-0700) Subject: Make rebase script saner. X-Git-Tag: v0.99.5~15^2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=99a92f928fd02a87d841a8bb19511e7ce526819d;p=git.git 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 026225ab2..7b1d4900b 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