Re: [PATCH] git-rebase.sh: handle keep-empty like all other options
- From
Elijah Newren <newren@gmail.com>
- Date
- Jun 11, 2018, 14:42 UTC
- Message-ID
- <CABPp-BF7POrGTRbVOZ-AGjRHKcpExMQcA4uSPvrRONbnG2CE8w@mail.gmail.com>
- In-Reply-To
- <8f19c8c2-d050-2d51-756d-d78b9f2bd335@talktalk.net>
Hi Phillip,
On Sun, Jun 10, 2018 at 12:26 PM, Phillip Wood <phillip.wood@talktalk.net> wrote:
Show 23 quoted lines
> On 07/06/18 06:07, Elijah Newren wrote: >> >> Signed-off-by: Elijah Newren <newren@gmail.com> >> --- >> git-rebase.sh | 6 +----- >> 1 file changed, 1 insertion(+), 5 deletions(-) >> >> diff --git a/git-rebase.sh b/git-rebase.sh >> index 40be59ecc4..a56b286372 100755 >> --- a/git-rebase.sh >> +++ b/git-rebase.sh >> @@ -276,6 +276,7 @@ do >> ;; >> --keep-empty) >> keep_empty=yes >> + test -z "$interactive_rebase" && >> interactive_rebase=implied > > > I think you need to wait until all the options have been parsed before > setting the implied interactive rebase in case the user specifies has > '--keep-empty' in an alias and specifies '--no-keep-empty' with some am > options on the command line.
Ah, indeed you are right. Let's drop this patch then.
However, we have a bigger problem with empty commits, in that there are really three modes rather than two: * Automatically drop empty commits (default for am-based rebase) * Automatically keep empty commits (as done with --keep-empty) * Halt the rebase and tell the user how to specify if they want to keep it (default for interactive rebases)
Currently, only the first option is available to am-based rebases, and only the second two options are available to interactive-based rebases. But if we want to make all three available to interactive-based rebases, what should the command line option look like? --empty={drop,ask,keep}?
(And deprecate but continue to support --[no-]keep-empty?)
And should the two rebase modes really have a different default? What should the default be?