> Quoting Junio C Hamano <junkio@xxxxxxx>: > Subject: Re: [PATCH] add -C[NUM] to git-am > > "Michael S. Tsirkin" <mst@xxxxxxxxxxxxxx> writes: > > >> Quoting r. Junio C Hamano <junkio@xxxxxxx>: > >> > >> FWIW, I am in favor although I do not foresee myself ever using > >> it. However, this has slight ramifications. > >> > >> - we will be keeping applymbox after all. shouldn't this be > >> side-ported to it? > > > > OK. Wait, this can't be done - git-applymbox uses git-applypatch internally and that does not get -CNUM. So this will have to stay a git-am only option. > >> - am is used as a workhorse for rebase. shouldn't this be > >> accessible through its command line as well? > > > > How will it be used? > > Although I do not foresee myself using -C<num> that applies to > the whole series inexactly for "git am" to begin with, I would > imagine somebody who wants to say "git am -C1" may want to say > something like "git rebase -C1 origin/master", Like this then? BTW, Junio, why is it that git-rebase calls "git am" and not "git-am"? This wastes some cycles, does it not? Add -C[NUM] to git-am and git-rebase so that patches can be applied even if context has changed a bit. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxxxxxx> --- diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt index aa4ce1d..f7d551e 100644 --- a/Documentation/git-am.txt +++ b/Documentation/git-am.txt @@ -64,6 +64,10 @@ default. You could use `--no-utf8` to override this. This flag is passed to the `git-apply` program that applies the patch. +-C<n>:: + This flag is passed to the `git-apply` program that applies + the patch. + --interactive:: Run interactively, just like git-applymbox. diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index 977f661..3dff2df 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -7,7 +7,7 @@ git-rebase - Forward-port local commits to the updated upstream head SYNOPSIS -------- -'git-rebase' [-v] [--merge] [--onto <newbase>] <upstream> [<branch>] +'git-rebase' [-v] [--merge] [-CNUM] [--onto <newbase>] <upstream> [<branch>] 'git-rebase' --continue | --skip | --abort @@ -196,6 +196,12 @@ OPTIONS -v, \--verbose:: Display a diffstat of what changed upstream since the last rebase. +-C<n>:: + Ensure at least <n> lines of surrounding context match before + and after each change. When fewer lines of surrounding + context exist they all must match. By default no context is + ever ignored. + include::merge-strategies.txt[] NOTES diff --git a/git-am.sh b/git-am.sh index 1252f26..9a61234 100755 --- a/git-am.sh +++ b/git-am.sh @@ -3,7 +3,7 @@ # Copyright (c) 2005, 2006 Junio C Hamano USAGE='[--signoff] [--dotest=<dir>] [--utf8 | --no-utf8] [--binary] [--3way] - [--interactive] [--whitespace=<option>] <mbox>... + [--interactive] [--whitespace=<option>] [-CNUM] <mbox>... or, when resuming [--skip | --resolved]' . git-sh-setup set_reflog_action am @@ -106,7 +106,8 @@ It does not apply to blobs recorded in its index." } prec=4 -dotest=.dotest sign= utf8=t keep= skip= interactive= resolved= binary= ws= resolvemsg= +dotest=.dotest sign= utf8=t keep= skip= interactive= resolved= binary= resolvemsg= +git_apply_opt= while case "$#" in 0) break;; esac do @@ -142,7 +143,10 @@ do skip=t; shift ;; --whitespace=*) - ws=$1; shift ;; + git_apply_opt="$git_apply_opt $1"; shift ;; + + -C*) + git_apply_opt="$git_apply_opt $1"; shift ;; --resolvemsg=*) resolvemsg=$(echo "$1" | sed -e "s/^--resolvemsg=//"); shift ;; @@ -394,7 +398,7 @@ do case "$resolved" in '') - git-apply $binary --index $ws "$dotest/patch" + git-apply $git_apply_opt $binary --index "$dotest/patch" apply_status=$? ;; t) diff --git a/git-rebase.sh b/git-rebase.sh index 9d2f71d..b51d19d 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -45,6 +45,7 @@ do_merge= dotest=$GIT_DIR/.dotest-merge prec=4 verbose= +git_am_opt= continue_merge () { test -n "$prev_head" || die "prev_head must be defined" @@ -213,6 +214,10 @@ do -v|--verbose) verbose=t ;; + -C*) + git_am_opt=$1 + shift + ;; -*) usage ;; @@ -322,7 +327,7 @@ fi if test -z "$do_merge" then git-format-patch -k --stdout --full-index --ignore-if-in-upstream "$upstream"..ORIG_HEAD | - git am --binary -3 -k --resolvemsg="$RESOLVEMSG" + git am $git_am_opt --binary -3 -k --resolvemsg="$RESOLVEMSG" exit $? fi -- MST - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html