summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Linus Torvalds <torvalds@osdl.org>2005-08-18 15:31:40 -0700
committerLibravatar Junio C Hamano <junkio@cox.net>2005-08-18 16:26:50 -0700
commitd571c2be99cb4ab96ff70c62c31d587271db9567 (patch)
treefa38bcef80df2d3090d3eb95681f615d94f95a33
parentLink the glossary document from the main manual. (diff)
downloadtgif-d571c2be99cb4ab96ff70c62c31d587271db9567.tar.xz
[PATCH] git-applymbox: verify that index is clean
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>
-rwxr-xr-xtools/git-applymbox8
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/git-applymbox b/tools/git-applymbox
index 889d4c1743..afcb00a3f5 100755
--- a/tools/git-applymbox
+++ b/tools/git-applymbox
@@ -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