threads / patch / 21255

patcham: allow some defaults to be specified via git-config

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

## tl;dr

5 messages between Oct 15, 2009 and Oct 20, 2009. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

Sam Vilain· Oct 15, 2009, 23:50 UTC · lore

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(-)
Show changes to 3 files +18 −2

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

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· Oct 17, 2009, 00:50 UTC · re: Sam Vilain · lore

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

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· Oct 19, 2009, 17:49 UTC · re: Sam Vilain · lore

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

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· Oct 20, 2009, 02:44 UTC · re: Wesley J. Landaker · lore

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

Wesley J. Landaker wrote:
Show 8 quoted lines
> 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· Oct 20, 2009, 06:30 UTC · re: Sam Vilain · lore

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

Sam Vilain <sam.vilain@catalyst.net.nz> writes:
Show 11 quoted lines
> 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?

← back to recent threads