Browse Source

add -C[NUM] to git-am

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@mellanox.co.il>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Michael S. Tsirkin 18 years ago committed by Junio C Hamano
parent
commit
67dad687ad
  1. 4
      Documentation/git-am.txt
  2. 8
      Documentation/git-rebase.txt
  3. 12
      git-am.sh
  4. 7
      git-rebase.sh

4
Documentation/git-am.txt

@ -64,6 +64,10 @@ default. You could use `--no-utf8` to override this. @@ -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.


8
Documentation/git-rebase.txt

@ -7,7 +7,7 @@ git-rebase - Forward-port local commits to the updated upstream head @@ -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 @@ -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

12
git-am.sh

@ -3,7 +3,7 @@ @@ -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." @@ -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 @@ -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 @@ -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)

7
git-rebase.sh

@ -45,6 +45,7 @@ do_merge= @@ -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 @@ -213,6 +214,10 @@ do
-v|--verbose)
verbose=t
;;
-C*)
git_am_opt=$1
shift
;;
-*)
usage
;;
@ -322,7 +327,7 @@ fi @@ -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


Loading…
Cancel
Save