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


Reply via email to