threads / patch / 15278

patchgit-am: Pass the --directory option through to git-apply

Subject: [PATCH] git-am: Pass the --directory option through to git-apply

## tl;dr

2 messages between Aug 29, 2008 and Aug 31, 2008. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Kevin Ballard· Aug 29, 2008, 22:27 UTC · lore
Signed-off-by: Kevin Ballard <kevin@sb.org>
---
 Documentation/git-am.txt |    1 +
 git-am.sh                |    3 ++-
 2 files changed, 3 insertions(+), 1 deletions(-)
Show changes to 2 files +3 −1

Documentation/git-am.txt, git-am.sh

diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt
index b9c6fac..64c8178 100644
--- a/Documentation/git-am.txt
+++ b/Documentation/git-am.txt
@@ -66,6 +66,7 @@ default.   You could use `--no-utf8` to override this.
 
 -C<n>::
 -p<n>::
+--directory=<root>::
 	These flags are passed to the 'git-apply' (see linkgit:git-apply[1])
 	program that applies
 	the patch.
diff --git a/git-am.sh b/git-am.sh
index aa60261..7e7a86f 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -18,6 +18,7 @@ k,keep          pass -k flag to git-mailinfo
 whitespace=     pass it through git-apply
 C=              pass it through git-apply
 p=              pass it through git-apply
+directory=      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
@@ -155,7 +156,7 @@ do
 		;;
 	--resolvemsg)
 		shift; resolvemsg=$1 ;;
-	--whitespace)
+	--whitespace|--directory)
 		git_apply_opt="$git_apply_opt $1=$2"; shift ;;
 	-C|-p)
 		git_apply_opt="$git_apply_opt $1$2"; shift ;;
-- 
1.6.0.1.207.g020e5.dirty
Junio C Hamano· Aug 31, 2008, 06:30 UTC · re: Kevin Ballard · lore

Re: [PATCH] git-am: Pass the --directory option through to git-apply

Kevin Ballard <kevin@sb.org> writes:
Show 33 quoted lines
> diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt
> index b9c6fac..64c8178 100644
> --- a/Documentation/git-am.txt
> +++ b/Documentation/git-am.txt
> @@ -66,6 +66,7 @@ default.   You could use `--no-utf8` to override this.
>  
>  -C<n>::
>  -p<n>::
> +--directory=<root>::
>  	These flags are passed to the 'git-apply' (see linkgit:git-apply[1])
>  	program that applies
>  	the patch.
> diff --git a/git-am.sh b/git-am.sh
> index aa60261..7e7a86f 100755
> --- a/git-am.sh
> +++ b/git-am.sh
> @@ -18,6 +18,7 @@ k,keep          pass -k flag to git-mailinfo
>  whitespace=     pass it through git-apply
>  C=              pass it through git-apply
>  p=              pass it through git-apply
> +directory=      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
> @@ -155,7 +156,7 @@ do
>  		;;
>  	--resolvemsg)
>  		shift; resolvemsg=$1 ;;
> -	--whitespace)
> +	--whitespace|--directory)
>  		git_apply_opt="$git_apply_opt $1=$2"; shift ;;
>  	-C|-p)
>  		git_apply_opt="$git_apply_opt $1$2"; shift ;;
Thanks, will queue.

This inherits an ancient breakage that was introduced to the --whitespace option by 67dad68 (add -C[NUM] to git-am, 2007-02-08), in that you need to give the next "git am" session the same option when you get a conflict and need to restart. We should fix this ancient breakage by recording the miscellaneous options that we append to $git_apply_opt variable (we should remove the use of "$dotest/whitespace" that is now a no-op but 67dad68 did not remove). That is a separate topic anyway, but the end result should:

 * Save the options in effect in $dotest/, just like "sign", "utf8" and
   "keep" are kept;
 * Upon command startup, read the saved options, and then let the command
   line options override them (which is not what the current code does, by
   the way);

so that you can give necessary --directory, --whitespace, -C etc. options when you feed your series to "git-am", and after fixing up a rejected patch, you can continue without typing the same set of options again.

← back to recent threads