[PATCH] git-applymbox: verify that index is clean
authorLinus Torvalds <torvalds@osdl.org>
Thu, 18 Aug 2005 22:31:40 +0000 (15:31 -0700)
committerJunio C Hamano <junkio@cox.net>
Thu, 18 Aug 2005 23:26:50 +0000 (16:26 -0700)
This makes git-applymbox verify that the index matches the current HEAD
before it starts applying patches.

Otherwise, you might have updated the index with unrelated changes, and
the first patch will commit not just the patch from the mbox, but also any
changes you had in your index.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
tools/git-applymbox

index 889d4c1..afcb00a 100755 (executable)
@@ -18,6 +18,8 @@
 ## use a Signoff_file, because applypatch wants to append the sign-off
 ## message to msg-clean every time it is run.
 
+. git-sh-setup-script || die "Not a git archive"
+
 keep_subject= query_apply= continue= resume=t
 while case "$#" in 0) break ;; esac
 do
@@ -39,6 +41,12 @@ case "$continue" in
        shift
 esac
 
+files=$(git-diff-cache --cached --name-only HEAD) || exit
+if [ "$files" ]; then
+   echo "Dirty index: cannot apply patches (dirty: $files)" >&2
+   exit 1
+fi
+
 case "$query_apply" in
 t)     touch .dotest/.query_apply
 esac