diff options
Diffstat (limited to 'git-am.sh')
-rwxr-xr-x | git-am.sh | 100 |
1 files changed, 51 insertions, 49 deletions
@@ -2,11 +2,26 @@ # # Copyright (c) 2005, 2006 Junio C Hamano -USAGE='[--signoff] [--dotest=<dir>] [--keep] [--utf8 | --no-utf8] - [--3way] [--interactive] [--binary] - [--whitespace=<option>] [-C<n>] [-p<n>] - <mbox>|<Maildir>... - or, when resuming [--skip | --resolved]' +OPTIONS_KEEPDASHDASH= +OPTIONS_SPEC="\ +git-am [options] <mbox>|<Maildir>... +git-am [options] --resolved +git-am [options] --skip +-- +d,dotest= use <dir> and not .dotest +i,interactive run interactively +b,binary pass --allo-binary-replacement to git-apply +3,3way allow fall back on 3way merging if needed +s,signoff add a Signed-off-by line to the commit message +u,utf8 recode into utf8 (default) +k,keep pass -k flagg to git-mailinfo +whitespace= pass it through git-apply +C= pass it through git-apply +p= pass it through git-apply +resolvemsg= override error message when patch failure occurs +r,resolved to be used after a patch failure +skip skip the current patch" + . git-sh-setup set_reflog_action am require_work_tree @@ -110,49 +125,38 @@ git_apply_opt= while test $# != 0 do case "$1" in - -d=*|--d=*|--do=*|--dot=*|--dote=*|--dotes=*|--dotest=*) - dotest=`expr "z$1" : 'z-[^=]*=\(.*\)'`; shift ;; - -d|--d|--do|--dot|--dote|--dotes|--dotest) - case "$#" in 1) usage ;; esac; shift - dotest="$1"; shift;; - - -i|--i|--in|--int|--inte|--inter|--intera|--interac|--interact|\ - --interacti|--interactiv|--interactive) - interactive=t; shift ;; - - -b|--b|--bi|--bin|--bina|--binar|--binary) - binary=t; shift ;; - - -3|--3|--3w|--3wa|--3way) - threeway=t; shift ;; - -s|--s|--si|--sig|--sign|--signo|--signof|--signoff) - sign=t; shift ;; - -u|--u|--ut|--utf|--utf8) - utf8=t; shift ;; # this is now default - --no-u|--no-ut|--no-utf|--no-utf8) - utf8=; shift ;; - -k|--k|--ke|--kee|--keep) - keep=t; shift ;; - - -r|--r|--re|--res|--reso|--resol|--resolv|--resolve|--resolved) - resolved=t; shift ;; - - --sk|--ski|--skip) - skip=t; shift ;; - - --whitespace=*|-C*|-p*) - git_apply_opt="$git_apply_opt $1"; shift ;; - - --resolvemsg=*) - resolvemsg=${1#--resolvemsg=}; shift ;; - + -i|--interactive) + interactive=t ;; + -b|--binary) + binary=t ;; + -3|--3way) + threeway=t ;; + -s|--signoff) + sign=t ;; + -u|--utf8) + utf8=t ;; # this is now default + --no-utf8) + utf8= ;; + -k|--keep) + keep=t ;; + -r|--resolved) + resolved=t ;; + --skip) + skip=t ;; + -d|--dotest) + shift; dotest=$1;; + --resolvemsg) + shift; resolvemsg=$1 ;; + --whitespace) + git_apply_opt="$git_apply_opt $1=$2"; shift ;; + -C|-p) + git_apply_opt="$git_apply_opt $1$2"; shift ;; --) - shift; break ;; - -*) - usage ;; + shift; break ;; *) - break ;; + usage ;; esac + shift done # If the dotest directory exists, but we have finished applying all the @@ -394,9 +398,7 @@ do stop_here $this fi - echo printf 'Applying %s\n' "$SUBJECT" - echo case "$resolved" in '') @@ -452,10 +454,8 @@ do fi tree=$(git write-tree) && - echo Wrote tree $tree && parent=$(git rev-parse --verify HEAD) && commit=$(git commit-tree $tree -p $parent <"$dotest/final-commit") && - echo Committed: $commit && git update-ref -m "$GIT_REFLOG_ACTION: $SUBJECT" HEAD $commit $parent || stop_here $this @@ -464,6 +464,8 @@ do "$GIT_DIR"/hooks/post-applypatch fi + git gc --auto + go_next done |