Hi Elijah
On 27/06/18 08:23, 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.
>
> Changes since v4 (short branch-diff at the end):
> - Fixed --strategy vs. --strategy-option (in patch 3, carries over to
> context region in later commit)
>
> v4 didn't get a lot of feedback (though it was picked up by Junio), so I'll
> repeat the areas that would be of most note for reviewers since v3:
>
> * I have left patch 9 in RFC state; since v3 it has an expanded the
> commit message with an in-depth usability rationale for the
> change.
> * It sounded like Junio was slightly unclear about the intent of the
> wording in Patch 1. Not sure if my answer (in email) was sufficient or
> if there are wording improvements others might suggest.
> * I'm assuming the --keep-empty and/or --empty={drop,halt,keep} (see
> comments on patch 5 of v3) can be resolved in a later series.
I'm sorry I've not got round to looking at the last couple of versions.
Unfortunately I'm about to go off-line for a couple of weeks so I just
wanted to let you know I wasn't ignoring you!. If they haven't been
merged when I get back on-line I'll have a look then
Best Wishes
Phillip
> Elijah Newren (9):
> git-rebase.txt: document incompatible options
> git-rebase.sh: update help messages a bit
> t3422: new testcases for checking when incompatible options passed
> git-rebase: error out when incompatible options passed
> git-rebase.txt: address confusion between --no-ff vs --force-rebase
> directory-rename-detection.txt: technical docs on abilities and
> limitations
> git-rebase.txt: document behavioral differences between modes
> t3401: add directory rename testcases for rebase and am
> git-rebase: make --allow-empty-message the default
>
> Documentation/git-rebase.txt | 135 ++++++++++++++----
> .../technical/directory-rename-detection.txt | 115 +++++++++++++++
> git-rebase.sh | 43 +++++-
> t/t3401-rebase-and-am-rename.sh | 105 ++++++++++++++
> t/t3404-rebase-interactive.sh | 7 +-
> t/t3405-rebase-malformed.sh | 11 +-
> t/t3422-rebase-incompatible-options.sh | 88 ++++++++++++
> 7 files changed, 462 insertions(+), 42 deletions(-)
> create mode 100644 Documentation/technical/directory-rename-detection.txt
> create mode 100755 t/t3401-rebase-and-am-rename.sh
> create mode 100755 t/t3422-rebase-incompatible-options.sh
>
> 1: 3f454ebc5e = 1: 3f454ebc5e git-rebase.txt: document incompatible options
> 2: 31a5a071a6 = 2: 31a5a071a6 git-rebase.sh: update help messages a bit
> 3: 5a2b5eec79 ! 3: bc3a5a3f95 t3422: new testcases for checking when
> incompatible options passed
> @@ -62,7 +62,7 @@
> +
> + test_expect_failure "$opt incompatible with
> --strategy-option=ours" "
> + git checkout B^0 &&
> -+ test_must_fail git rebase $opt --strategy=ours A
> ++ test_must_fail git rebase $opt --strategy-option=ours A
> + "
> +
> + test_expect_failure "$opt incompatible with --interactive" "
> 4: 1e1c83724a ! 4: ca3b8327f7 git-rebase: error out when incompatible
> options passed
> @@ -104,7 +104,7 @@
> - test_expect_failure "$opt incompatible with
> --strategy-option=ours" "
> + test_expect_success "$opt incompatible with
> --strategy-option=ours" "
> git checkout B^0 &&
> - test_must_fail git rebase $opt --strategy=ours A
> + test_must_fail git rebase $opt --strategy-option=ours A
> "
>
> - test_expect_failure "$opt incompatible with --interactive" "
> 5: 51023269d3 = 5: 6ac359359e git-rebase.txt: address confusion between
> --no-ff vs --force-rebase
> 6: f017d45dd9 = 6: e5c5db9110 directory-rename-detection.txt: technical
> docs on abilities and limitations
> 7: 0a359df404 = 7: e330437305 git-rebase.txt: document behavioral
> differences between modes
> 8: beaadceaef = 8: f704f7eee8 t3401: add directory rename testcases for
> rebase and am
> 9: 431b2c36d5 = 9: 436f597487 git-rebase: make --allow-empty-message the
> default
>