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 >