From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: <git@vger.kernel.org>
Subject: Re: [PATCH] git-am: make a config setting for --keep-non-patch switch
Date: Wed, 1 Aug 2012 15:56:35 -0400 [thread overview]
Message-ID: <501989F3.7080907@windriver.com> (raw)
In-Reply-To: <7v1ujqfnyg.fsf@alter.siamese.dyndns.org>
On 12-08-01 02:48 PM, Junio C Hamano wrote:
> Paul Gortmaker <paul.gortmaker@windriver.com> writes:
>
>> In order to make a commit be invariant (excluding ID) over
>> a format-patch and subsequent am cycle, one needs to use
>> the '--keep-non-patch' so that commits like:
>>
>> [PATCH] [i386] fix foo bar arch/x86/mm
>>
>> only lose the [PATCH] and not the [i386] part. Since it
>> is a common desire (e.g. linux kernel stable trees) to have
>> the subjects remain invariant during a backport, there is
>> a genuine need for making this the default behaviour from
>> a config file, versus specifying it in scripts and on the
>> command line each time.
>>
>> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
>> ---
>>
>> See http://lkml.indiana.edu/hypermail/linux/kernel/1203.1/01817.html
>> for additional background; stable maintainers using it etc.
>
> That's a blast from the past; it would have been so much nicer
> if the patch came earlier ;-)
I just happened to "rediscover" the issue yesterday when backporting
a patch that had [S390] in it to linux-2.6.34 -- went looking for
any possible previous reports and found the above thread. So the
timing was largely out of my control. :)
>
> The patch looks from sane; we may want to have a test in t4150, just like
> we have tests for am.keepcr in t4253. We have plenty of time as we
> are in feature freeze right now.
I'll take a look at the test cases, and resend once 1.7.12 is done.
Paul.
--
>
> Thanks.
>
>>
>> Documentation/config.txt | 9 +++++++++
>> Documentation/git-am.txt | 4 ++++
>> contrib/completion/git-completion.bash | 1 +
>> git-am.sh | 8 ++++++++
>> 4 files changed, 22 insertions(+)
>>
>> diff --git a/Documentation/config.txt b/Documentation/config.txt
>> index a95e5a4..47aded5 100644
>> --- a/Documentation/config.txt
>> +++ b/Documentation/config.txt
>> @@ -655,6 +655,15 @@ am.keepcr::
>> by giving '--no-keep-cr' from the command line.
>> See linkgit:git-am[1], linkgit:git-mailsplit[1].
>>
>> +am.keepnonpatch::
>> + Normally git-mailinfo strips from the Subject line, all leading
>> + strings bracketed with [ and ] pairs. If this setting is true,
>> + git-am will call git-mailinfo with the parameter '-b' so that only
>> + the pairs whose bracketed string contains the word "PATCH" are
>> + stripped. Can be overridden by giving ' '--no-keep-non-patch'
>> + from the command line.
>> + See linkgit:git-am[1], linkgit:git-mailinfo[1].
>> +
>> 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 19d57a8..790efdb 100644
>> --- a/Documentation/git-am.txt
>> +++ b/Documentation/git-am.txt
>> @@ -41,7 +41,11 @@ OPTIONS
>> Pass `-k` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
>>
>> --keep-non-patch::
>> +--no-keep-non-patch::
>> Pass `-b` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
>> + The `am.keepnonpatch` configuration variable can be used to specify
>> + the default behaviour. The `--no-keep-non-patch` is useful to
>> + override any `am.keepnonpatch` setting.
>>
>> --keep-cr::
>> --no-keep-cr::
>> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
>> index ffedce7..04339df 100644
>> --- a/contrib/completion/git-completion.bash
>> +++ b/contrib/completion/git-completion.bash
>> @@ -1758,6 +1758,7 @@ _git_config ()
>> advice.statusHints
>> alias.
>> am.keepcr
>> + am.keepnonpatch
>> apply.ignorewhitespace
>> apply.whitespace
>> branch.autosetupmerge
>> diff --git a/git-am.sh b/git-am.sh
>> index c02e62d..9f6adbf 100755
>> --- a/git-am.sh
>> +++ b/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
>> keep-non-patch pass -b flag to git-mailinfo
>> +no-keep-non-patch do not pass -b flag to git-mailsplit, independent of am.keepnonpatch
>> keep-cr pass --keep-cr flag to git-mailsplit for mbox format
>> no-keep-cr do not pass --keep-cr flag to git-mailsplit independent of am.keepcr
>> c,scissors strip everything before a scissors line
>> @@ -381,6 +382,11 @@ then
>> keepcr=t
>> fi
>>
>> +if test "$(git config --bool --get am.keepnonpatch)" = true
>> +then
>> + keep=b
>> +fi
>> +
>> while test $# != 0
>> do
>> case "$1" in
>> @@ -402,6 +408,8 @@ do
>> keep=t ;;
>> --keep-non-patch)
>> keep=b ;;
>> + --no-keep-non-patch)
>> + keep= ;;
>> -c|--scissors)
>> scissors=t ;;
>> --no-scissors)
prev parent reply other threads:[~2012-08-01 19:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-01 17:18 [PATCH] git-am: make a config setting for --keep-non-patch switch Paul Gortmaker
2012-08-01 18:48 ` Junio C Hamano
2012-08-01 19:56 ` Paul Gortmaker [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=501989F3.7080907@windriver.com \
--to=paul.gortmaker@windriver.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.