Skip to content

rebase: understand -C again, refactor

Johannes Schindelin via GitGitGadget git lkml 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest2 patches 4 repliesIn review
  2. v11 patch 11 repliesSuperseded

Changes in v2 from the cover letter

* Introduce early parameter validation for the options passed through to git am.

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2rebase: really just passthru the `git am` optionsbuiltin/rebase.c+35 -630 replies
2/2rebase: validate -C<n> and --whitespace=<mode> parameters earlybuiltin/rebase.c t/t3406-rebase-message.sh+18 -16 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH v2 0/2] rebase: understand -C again, refactor

Phillip Wood reported a problem where the built-in rebase did not understand options like -C1, i.e. it did not expect the option argument.

While investigating how to address this best, I stumbled upon OPT_PASSTHRU_ARGV (which I was so far happily unaware of).

Instead of just fixing the -C<n> bug, I decided to simply convert all of the options intended for git am (or, eventually, for git apply). This happens to fix that bug, and does so much more: it simplifies the entire logic (and removes more lines than it adds).

Change since v1:

* Introduce early parameter validation for the options passed through to git am.

Johannes Schindelin (2):
rebase: really just passthru the git am options
rebase: validate -C<n> and --whitespace=<mode> parameters early

 builtin/rebase.c          | 108 ++++++++++++++++----------------------
 t/t3406-rebase-message.sh |   7 +++
 2 files changed, 52 insertions(+), 63 deletions(-)

base-commit: 8858448bb49332d353febc078ce4a3abcc962efe
Published-As: https://github.com/gitgitgadget/git/releases/tags/pr-76%2Fdscho%2Frebase-Cn-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-76/dscho/rebase-Cn-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/76

Range-diff vs v1:

 1:  dc36a45068 = 1:  dc36a45068 rebase: really just passthru the `git am` options
 -:  ---------- > 2:  4c2ba52766 rebase: validate -C<n> and --whitespace=<mode> parameters early
Signature · 1 line
gitgitgadget