git-am: add --directory=<dir> option
Thanks to a200337 (git-am: propagate -C<n>, -p<n> options as well,
2008-12-04) and commits around it, "git am" is equipped to correctly
propagate the command line flags such as -C/-p/-whitespace across a patch
failure and restart.
It is trivial to support --directory option now, resurrecting previous
attempts by Kevin and Simon.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
17
git-am.sh
17
git-am.sh
@ -16,6 +16,7 @@ s,signoff add a Signed-off-by line to the commit message
|
||||
u,utf8 recode into utf8 (default)
|
||||
k,keep pass -k flag to git-mailinfo
|
||||
whitespace= pass it through git-apply
|
||||
directory= 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
|
||||
@ -33,6 +34,14 @@ cd_to_toplevel
|
||||
git var GIT_COMMITTER_IDENT >/dev/null ||
|
||||
die "You need to set your committer info first"
|
||||
|
||||
sq () {
|
||||
for sqarg
|
||||
do
|
||||
printf "%s" "$sqarg" |
|
||||
sed -e 's/'\''/'\''\'\'''\''/g' -e 's/.*/ '\''&'\''/'
|
||||
done
|
||||
}
|
||||
|
||||
stop_here () {
|
||||
echo "$1" >"$dotest/next"
|
||||
exit 1
|
||||
@ -155,10 +164,10 @@ do
|
||||
;;
|
||||
--resolvemsg)
|
||||
shift; resolvemsg=$1 ;;
|
||||
--whitespace)
|
||||
git_apply_opt="$git_apply_opt $1=$2"; shift ;;
|
||||
--whitespace|--directory)
|
||||
git_apply_opt="$git_apply_opt $(sq "$1=$2")"; shift ;;
|
||||
-C|-p)
|
||||
git_apply_opt="$git_apply_opt $1$2"; shift ;;
|
||||
git_apply_opt="$git_apply_opt $(sq "$1$2")"; shift ;;
|
||||
--)
|
||||
shift; break ;;
|
||||
*)
|
||||
@ -459,7 +468,7 @@ do
|
||||
|
||||
case "$resolved" in
|
||||
'')
|
||||
git apply $git_apply_opt --index "$dotest/patch"
|
||||
eval 'git apply '"$git_apply_opt"' --index "$dotest/patch"'
|
||||
apply_status=$?
|
||||
;;
|
||||
t)
|
||||
|
||||
Reference in New Issue
Block a user