[PATCH v3 0/5] rebase: cleanup merge strategy option handling
- From
- Phillip Wood <phillip.wood123@gmail.com>
- Date
- Apr 7, 2023, 13:55 UTC
- Message-ID
- <cover.1680875701.git.phillip.wood@dunelm.org.uk>
- In-Reply-To
- <cover.1678893298.git.phillip.wood@dunelm.org.uk>
From: Phillip Wood <phillip.wood@dunelm.org.uk>
Cleanup the handling of --strategy-option now that we no longer need to support "--preserve-merges" and properly quote the argument when saving it to disc.
Thanks to Elijah for his comments.
Changes since V2:
- Added Elijah's Reviewed-by: trailer. - Fixed a typo in patch 4 spotted by Elijah.
Changes since V1:
I've rebased these patches onto 'master' to avoid conflicts with 'sg/parse-options-h-initializers' in the new patch 2 (this series depends on 'ab/fix-strategy-opts-parsing' but that has now been merged to master).
Patch 1 - Unchanged.
Patch 2 - New patch to store the merge strategy options in an "struct
strvec". This patch also introduces a new macro OPT_STRVEC()
to collect options into an "struct strvec".Patch 3 - Small simplification due to the changes in patch 2.
Patch 4 - Moved the code to quote a list so it can split by
split_cmdline() into a new function quote_cmdline() as
suggested by Elijah.Patch 5 - Reworded the commit message as suggested by Elijah.
Base-Commit: 140b9478dad5d19543c1cb4fd293ccec228f1240 Published-As: https://github.com/phillipwood/git/releases/tag/sequencer-merge-strategy-options%2Fv3 View-Changes-At: https://github.com/phillipwood/git/compare/140b9478d...2d1d32811 Fetch-It-Via: git fetch https://github.com/phillipwood/git sequencer-merge-strategy-options/v3
Phillip Wood (5): rebase: stop reading and writing unnecessary strategy state sequencer: use struct strvec to store merge strategy options rebase -m: cleanup --strategy-option handling rebase -m: fix serialization of strategy options rebase: remove a couple of redundant strategy tests
alias.c | 18 +++++++ alias.h | 3 ++ builtin/rebase.c | 54 ++++----------------- builtin/revert.c | 20 ++------ parse-options-cb.c | 16 +++++++ parse-options.h | 10 ++++ sequencer.c | 57 ++++++++++------------ sequencer.h | 12 +++-- t/t3402-rebase-merge.sh | 21 -------- t/t3418-rebase-continue.sh | 88 +++++++++++++--------------------- t/t3436-rebase-more-options.sh | 18 ------- 11 files changed, 126 insertions(+), 191 deletions(-)
Range-diff against v2:
1: 2353c753f5 ! 1: 882b403423 rebase: stop reading and writing unnecessary strategy state
@@ Commit message
writing of state files between builtin/rebase.c and sequencer.c but that
is left for a follow up series.
+ Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
## builtin/rebase.c ##
2: dd7b82cdd5 ! 2: 1d8e59aa16 sequencer: use struct strvec to store merge strategy options
@@ Commit message
revert" as passing “--no-strategy-option” will now clear any previous
strategy options whereas before this change it did nothing.
+ Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
## builtin/revert.c ##
3: ccef0e6f4b ! 3: e98ef5ce8c rebase -m: cleanup --strategy-option handling
@@ Commit message
mixed blessing but the next commit will fix the root cause of the
parsing problem so lets not worry about that here.
+ Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
## builtin/rebase.c ##
4: 9a90212ef2 ! 4: a5e940e2d0 rebase -m: fix serialization of strategy options
@@ Commit message
they are stored as that was an artifact of the scripted rebase.
These changes are backwards compatible so the files written by an older
- version of git can be still be read. They are also forwards compatible,
+ version of git can still be read. They are also forwards compatible,
the file can still be parsed by recent versions of git as they treat the
"--" prefix as optional.
+ Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
## alias.c ##
5: 3515c31b40 ! 5: 2d1d328110 rebase: remove a couple of redundant strategy tests
@@ Commit message
preceding test.
Helped-by: Elijah Newren <newren@gmail.com>
+ Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
## t/t3402-rebase-merge.sh ##-- 2.40.0.670.g64ef305212.dirty