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>
This commit is contained in:
Michael S. Tsirkin 2007-02-08 15:57:08 +02:00 committed by Junio C Hamano
parent 66e788bc7f
commit 67dad687ad
4 changed files with 25 additions and 6 deletions

View File

@ -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.

View File

@ -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

View File

@ -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)

View File

@ -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