# [PATCH] am: allow some defaults to be specified via git-config

5 messages from 2009-10-15 to 2009-10-20. Participants: Sam Vilain, Junio C Hamano, Wesley J. Landaker.
Thread: https://gitlist.dev/t/21255

## Sam Vilain, 2009-10-15 23:50

Subject: [PATCH] am: allow some defaults to be specified via git-config
Message-ID: <1255650627-17576-1-git-send-email-sam.vilain@catalyst.net.nz>
URL: https://gitlist.dev/e/1255650627-17576-1-git-send-email-sam.vilain%40catalyst.net.nz

```
Some users prefer in particular '3way' to be the default, let them
specify it via the config file - and some other boolean settings while
we're at it.

Signed-off-by: Sam Vilain <sam.vilain@catalyst.net.nz>
---
 Documentation/config.txt |    4 ++++
 Documentation/git-am.txt |   11 +++++++++--
 git-am.sh                |    5 +++++
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/Documentation/config.txt b/Documentation/config.txt
index cd17814..82adca5 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -476,6 +476,10 @@ it will be treated as a shell command.  For example, defining
 executed from the top-level directory of a repository, which may
 not necessarily be the current directory.
 
+am.*::
+	Specify defaults for linkgit:git-am[1].  Currently, the three
+	boolean options, 'sign', 'utf8' and 'keep' may be specified.
+
 apply.ignorewhitespace::
 	When set to 'change', tells 'git-apply' to ignore changes in
 	whitespace, in the same way as the '--ignore-space-change'
diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt
index 67ad5da..c22bca2 100644
--- a/Documentation/git-am.txt
+++ b/Documentation/git-am.txt
@@ -38,6 +38,7 @@ OPTIONS
 -k::
 --keep::
 	Pass `-k` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]).
+	May be specified via 'am.keep' (see linkgit:git-config[1]).
 
 -c::
 --scissors::
@@ -60,7 +61,8 @@ OPTIONS
 	preferred encoding if it is not UTF-8).
 +
 This was optional in prior versions of git, but now it is the
-default.   You can use `--no-utf8` to override this.
+default.   You can use `--no-utf8` to override this, or set
+'am.utf8' to no via linkgit:git-config[1].
 
 --no-utf8::
 	Pass `-n` flag to 'git-mailinfo' (see
@@ -71,7 +73,12 @@ default.   You can use `--no-utf8` to override this.
 	When the patch does not apply cleanly, fall back on
 	3-way merge if the patch records the identity of blobs
 	it is supposed to apply to and we have those blobs
-	available locally.
+	available locally.  This can be configured via
+	linkgit:git-config[1] using the 'am.3way' option
+
+--no-3way::
+	If 'am.3way' is specified to be true in the configuration file,
+	this switch allows it to be disabled.
 
 --ignore-date::
 --ignore-space-change::
diff --git a/git-am.sh b/git-am.sh
index c132f50..a22fa3b 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -294,6 +294,9 @@ git_apply_opt=
 committer_date_is_author_date=
 ignore_date=
 
+# apply defaults from config
+eval "$(git config --bool --get-regexp '^am\.(sign|utf8|keep)' | sed 's/^am\.\([a-z0-9]*\) /\1=/;s/true/t/;s/false//')"
+
 while test $# != 0
 do
 	case "$1" in
@@ -303,6 +306,8 @@ do
 		: ;;
 	-3|--3way)
 		threeway=t ;;
+	--no-3way)
+		threeway= ;;
 	-s|--signoff)
 		sign=t ;;
 	-u|--utf8)
-- 
1.6.3.3

```

## Junio C Hamano, 2009-10-17 00:50

Subject: Re: [PATCH] am: allow some defaults to be specified via git-config
Message-ID: <7v3a5iq1wk.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v3a5iq1wk.fsf%40alter.siamese.dyndns.org
In-Reply-To: <1255650627-17576-1-git-send-email-sam.vilain@catalyst.net.nz>

```
Sam Vilain <sam.vilain@catalyst.net.nz> writes:

> Some users prefer in particular '3way' to be the default, let them
> specify it via the config file - and some other boolean settings while
> we're at it.

I have to wonder how this will interact with the internal call rebase
makes into am.  Would there be unexpected fallouts?

```

## Wesley J. Landaker, 2009-10-19 17:49

Subject: Re: [PATCH] am: allow some defaults to be specified via git-config
Message-ID: <200910191149.13698.wjl@icecavern.net>
URL: https://gitlist.dev/e/200910191149.13698.wjl%40icecavern.net
In-Reply-To: <1255650627-17576-1-git-send-email-sam.vilain@catalyst.net.nz>

```
On Thursday 15 October 2009 17:50:27 Sam Vilain wrote:
> +am.*::
> +	Specify defaults for linkgit:git-am[1].  Currently, the three
> +	boolean options, 'sign', 'utf8' and 'keep' may be specified.
> +

The 'git am' option is 'signoff', not 'sign'. Shouldn't the command option 
and config option names match?

```

## Sam Vilain, 2009-10-20 02:44

Subject: Re: [PATCH] am: allow some defaults to be specified via git-config
Message-ID: <4ADD241F.9060004@catalyst.net.nz>
URL: https://gitlist.dev/e/4ADD241F.9060004%40catalyst.net.nz
In-Reply-To: <200910191149.13698.wjl@icecavern.net>

```
Wesley J. Landaker wrote:
> On Thursday 15 October 2009 17:50:27 Sam Vilain wrote:
>> +am.*::
>> +	Specify defaults for linkgit:git-am[1].  Currently, the three
>> +	boolean options, 'sign', 'utf8' and 'keep' may be specified.
>> +
> 
> The 'git am' option is 'signoff', not 'sign'. Shouldn't the command option 
> and config option names match?

Thanks for pointing that out.  Yes, it should be.
-- 
Sam Vilain, Perl Hacker, Catalyst IT (NZ) Ltd.
phone: +64 4 499 2267        PGP ID: 0x66B25843

```

## Junio C Hamano, 2009-10-20 06:30

Subject: Re: [PATCH] am: allow some defaults to be specified via git-config
Message-ID: <7vzl7mshjz.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vzl7mshjz.fsf%40alter.siamese.dyndns.org
In-Reply-To: <4ADD241F.9060004@catalyst.net.nz>

```
Sam Vilain <sam.vilain@catalyst.net.nz> writes:

> Wesley J. Landaker wrote:
>> On Thursday 15 October 2009 17:50:27 Sam Vilain wrote:
>>> +am.*::
>>> +	Specify defaults for linkgit:git-am[1].  Currently, the three
>>> +	boolean options, 'sign', 'utf8' and 'keep' may be specified.
>>> +
>> 
>> The 'git am' option is 'signoff', not 'sign'. Shouldn't the command option 
>> and config option names match?
>
> Thanks for pointing that out.  Yes, it should be.

Wouldn't this patch make issues like $gmane/130744 even worse, unless you
add some disabling code to rebase?

```
