Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH v2 0/3] am: let command-line options override saved options

From: Junio C Hamano <hidden>
Date: 2016-06-15 23:06:05

Paul Tan [off-list ref] writes:
Let command-line options override saved options in git-am when resuming

This is a re-roll of [v1]. Previous versions:

[v1] http://thread.gmane.org/gmane.comp.version-control.git/274789

When resuming, git-am mistakenly ignores command-line options.

For instance, when a patch fails to apply with "git am patch", subsequently
running "git am --3way" would not cause git-am to fall back on attempting a
threeway merge.  This occurs because by default the --3way option is saved as
"false", and the saved am options are loaded after the command-line options are
parsed, thus overwriting the command-line options when resuming.

[PATCH 1/3] tweaks test-terminal.perl to redirect the stdin of the child
process to a pty. This is to support the tests in [PATCH 2/3].

[PATCH 2/3] fixes builtin/am.c, enabling command-line options to override saved
options. However, even with this patch, the following command-line options have
no effect when resuming:

* --signoff overriding --no-signoff

* --no-keep overriding --keep

* --message-id overriding --no-message-id

* --scissors overriding --no-scissors

This is because they are only taken into account during the mail-parsing stage,
which is skipped over when resuming.
It is more like "which has already happened", so I would tend to
think that these are the right things to ignore.  Otherwise, a
pretty common sequence would not work well ...

    $ git am mbox
    ... conflicted ...
    $ edit .git/rebase-apply/patch
    $ git am

... if the "resuming" invocation re-split the message by running
mailinfo again, the edit by the user will be lost.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help