Hi Elijah
On 17/06/18 06:58, Elijah Newren wrote:
git-rebase has lots of options that are mutually incompatible. Even among
aspects of its behavior that is common to all rebase types, it has a number
of inconsistencies. This series tries to document, fix, and/or warn users
about many of these.
I have a much higher than average expectation that folks will object
to some of these patches. I've tried to divide them up so that any parts
we decide to drop or redo can be more easily excised.
No branch-diff; because it's a significant re-work; instead I'll comment
briefly on the individual patches...
I found this series well structured and easy to follow. I've commented
on a couple of the patches, the others seemed fine to me. It's great to
see these inconsistencies being documented and some being eliminated.
Best Wishes
Phillip
Elijah Newren (7):
git-rebase.txt: document incompatible options
Both Dscho (on a related patch series) and Phillip suggested changing the
documentation to avoid implementational details. I instead made a separate
section with sets of incompatible options...but it still mentions the
different backends while doing so. Does that seem alright?
git-rebase.sh: update help messages a bit
Minor tweaks to `git rebase -h` output.
t3422: new testcases for checking when incompatible options passed
The one unmodified patch from the first round.
git-rebase: error out when incompatible options passed
Almost the same as the first round, except:
* Documentation pulled into a separate patch (patch 1)
* $() instead of ``
git-rebase.txt: document behavioral inconsistencies between modes
Add another section to the documentation for aspects that ideally
should be common between all modes but are handled differently.
git-rebase.txt: address confusion between --no-ff vs --force-rebase
This came up on the list not that long ago; fix the documentation.
git-rebase: make --allow-empty-message the default
Address the easiest of the inconsistencies, assuming the am-based backend
has the correct default and the merge-based and interactive-based backends
are the ones that need to change.
Documentation/git-rebase.txt | 154 ++++++++++++++++++++-----
git-rebase.sh | 25 +++-
t/t3404-rebase-interactive.sh | 7 +-
t/t3405-rebase-malformed.sh | 11 +-
t/t3422-rebase-incompatible-options.sh | 69 +++++++++++
5 files changed, 224 insertions(+), 42 deletions(-)
create mode 100755 t/t3422-rebase-incompatible-options.sh