X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=tools%2Fgit-applymbox;h=2b32dab5f54e8542fc6f5be481fd0f0f8f461137;hb=79882c2883267e16280d630730d6a8b5a86a8092;hp=889d4c1743ccdfcf8ad0be96a58eb8b60c03ccdc;hpb=6bff6a60680ef402f614abae8189c2cb198cfa49;p=git.git diff --git a/tools/git-applymbox b/tools/git-applymbox index 889d4c17..2b32dab5 100755 --- a/tools/git-applymbox +++ b/tools/git-applymbox @@ -9,7 +9,7 @@ ## You give it a mbox-format collection of emails, and it will try to ## apply them to the kernel using "applypatch" ## -## applymbox [ -k ] [ -q ] (-c .dotest/msg-number | mail_archive) [Signoff_file]" +## applymbox [-u] [-k] [-q] (-c .dotest/msg-number | mail_archive) [Signoff_file]" ## ## The patch application may fail in the middle. In which case: ## (1) look at .dotest/patch and fix it up to apply @@ -18,10 +18,18 @@ ## use a Signoff_file, because applypatch wants to append the sign-off ## message to msg-clean every time it is run. -keep_subject= query_apply= continue= resume=t +. git-sh-setup-script || die "Not a git archive" + +usage () { + echo >&2 "applymbox [-u] [-k] [-q] (-c .dotest/ | mbox) [signoff]" + exit 1 +} + +keep_subject= query_apply= continue= utf8= resume=t while case "$#" in 0) break ;; esac do case "$1" in + -u) utf8=-u ;; -k) keep_subject=-k ;; -q) query_apply=t ;; -c) continue="$2"; resume=f; shift ;; @@ -39,6 +47,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 @@ -56,7 +70,7 @@ do f,$i) resume=t;; f,*) continue;; *) - git-mailinfo $keep_subject \ + git-mailinfo $keep_subject $utf8 \ .dotest/msg .dotest/patch <$i >.dotest/info || exit 1 git-stripspace < .dotest/msg > .dotest/msg-clean ;;