git-applymbox: verify that index is clean
From: Linus Torvalds <torvalds@osdl.org>
Date: 2016-06-15 22:42:04
Subsystem:
the rest · Maintainer:
Linus Torvalds
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> ---- This was brough on by: Tony Luck's problem, which _might_ be due to index file change contents that got committed together with a real patch. This will make it much harder to make that particular mistake. On Thu, 18 Aug 2005, Linus Torvalds wrote:
(git-applymbox _does_ verify that the files that it patches are up-to-date in the index, but it does _not_ verify that the index matches the current HEAD. I guess I could add a sanity check for that...)
diff --git a/tools/git-applymbox b/tools/git-applymbox
--- 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