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

2015-08-05 Thread Junio C Hamano
Interesting.  This seems to break test under prove.

cd t  make T=t4153-am-resume-override-opts.sh prove

does not seem to return.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2015-08-04 Thread Paul Tan
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.

[PATCH 3/3] adds support for the --signoff option when resuming by recognizing
that we can (re-)append the signoff when the user explicitly specifies the
--signoff option.

Since the --keep, --message-id and --scissors options are handled by
git-mailinfo, it is tricky to implement support for them without introducing
lots of code complexity, and thus this patch series does not attempt to.

Furthermore, it is hard to imagine a use case for e.g. --scissors overriding
--no-scissors, and hence it might be preferable to wait until someone comes
with a solid use case, instead of implementing potentially undesirable behavior
and having to support it.


Paul Tan (3):
  test_terminal: redirect child process' stdin to a pty
  am: let command-line options override saved options
  am: let --signoff override --no-signoff

 builtin/am.c   |  42 ---
 t/t4153-am-resume-override-opts.sh | 102 +
 t/test-terminal.perl   |  25 +++--
 3 files changed, 158 insertions(+), 11 deletions(-)
 create mode 100755 t/t4153-am-resume-override-opts.sh

-- 
2.5.0.280.gd88bd6e

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2015-08-04 Thread Paul Tan
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.

[PATCH 3/3] adds support for the --signoff option when resuming by recognizing
that we can (re-)append the signoff when the user explicitly specifies the
--signoff option.

Since the --keep, --message-id and --scissors options are handled by
git-mailinfo, it is tricky to implement support for them without introducing
lots of code complexity, and thus this patch series does not attempt to.

Furthermore, it is hard to imagine a use case for e.g. --scissors overriding
--no-scissors, and hence it might be preferable to wait until someone comes
with a solid use case, instead of implementing potentially undesirable behavior
and having to support it.


Paul Tan (3):
  test_terminal: redirect child process' stdin to a pty
  am: let command-line options override saved options
  am: let --signoff override --no-signoff

 builtin/am.c   |  42 ---
 t/t4153-am-resume-override-opts.sh | 102 +
 t/test-terminal.perl   |  25 +++--
 3 files changed, 158 insertions(+), 11 deletions(-)
 create mode 100755 t/t4153-am-resume-override-opts.sh

-- 
2.5.0.280.gd88bd6e

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2015-08-04 Thread Junio C Hamano
Paul Tan pyoka...@gmail.com 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.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html