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