threads / patch / 49869

patchlegacy-rebase: fix "regression"

Subject: [PATCH 0/1] legacy-rebase: fix "regression"

## tl;dr

5 messages between Nov 20, 2018 and Nov 21, 2018. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

Johannes Schindelin via GitGitGadget· Nov 20, 2018, 20:01 UTC · lore

This is a backport, really, to accommodate a new regression test that was introduced when the built-in rebase learned to validate the -C<n> and --whitespace=<option> arguments early.

Johannes Schindelin (1):
  legacy-rebase: backport -C<n> and --whitespace=<option> checks
 git-legacy-rebase.sh | 8 ++++++++
 1 file changed, 8 insertions(+)
base-commit: bb75be6cb916297f271c846f2f9caa3daaaec718
Published-As: https://github.com/gitgitgadget/git/releases/tags/pr-86%2Fdscho%2Fscripted-rebase-Cn-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-86/dscho/scripted-rebase-Cn-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/86
-- 
gitgitgadget
Johannes Schindelin via GitGitGadget· Nov 20, 2018, 20:02 UTC · re: Johannes Schindelin via GitGitGadget · lore

[PATCH 1/1] legacy-rebase: backport -C<n> and --whitespace=<option> checks

From: Johannes Schindelin <johannes.schindelin@gmx.de>

Since 04519d720114 (rebase: validate -C<n> and --whitespace=<mode> parameters early, 2018-11-14), the built-in rebase validates the -C and --whitespace arguments early. As this commit also introduced a regression test for this, and as a later commit introduced the GIT_TEST_REBASE_USE_BUILTIN mode to run tests, we now have a "regression" in the scripted version of `git rebase` on our hands.

Backport the validation to fix this.
Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 git-legacy-rebase.sh | 8 ++++++++
 1 file changed, 8 insertions(+)
Show changes to git-legacy-rebase.sh +8 −0
diff --git a/git-legacy-rebase.sh b/git-legacy-rebase.sh
index 75a08b2683..ced0635326 100755
--- a/git-legacy-rebase.sh
+++ b/git-legacy-rebase.sh
@@ -337,6 +337,11 @@ do
 		fix|strip)
 			force_rebase=t
 			;;
+		warn|nowarn|error|error-all)
+			;; # okay, known whitespace option
+		*)
+			die "Invalid whitespace option: '${1%*=}'"
+			;;
 		esac
 		;;
 	--ignore-whitespace)
@@ -352,6 +357,9 @@ do
 		git_am_opt="$git_am_opt $1"
 		force_rebase=t
 		;;
+	-C*[!0-9]*)
+		die "switch \`C' expects a numerical value"
+		;;
 	-C*)
 		git_am_opt="$git_am_opt $1"
 		;;
-- 
gitgitgadget
Junio C Hamano· Nov 21, 2018, 04:40 UTC · re: Carlo Arenas · lore

Re: [PATCH 1/1] legacy-rebase: backport -C<n> and --whitespace=<option> checks

Carlo Arenas <carenas@gmail.com> writes:
> Tested-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
>
> the C version prepends: "fatal: " unlike the shell version for both
> error messages

In addition, "Invalid whitespace option" says 'bad', not '--whitespace=bad', in the builtin version.

I think the following would address both issues.
 git-legacy-rebase.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Show changes to git-legacy-rebase.sh +2 −2
diff --git a/git-legacy-rebase.sh b/git-legacy-rebase.sh
index ced0635326..b97ffdc9dd 100755
--- a/git-legacy-rebase.sh
+++ b/git-legacy-rebase.sh
@@ -340,7 +340,7 @@ do
 		warn|nowarn|error|error-all)
 			;; # okay, known whitespace option
 		*)
-			die "Invalid whitespace option: '${1%*=}'"
+			die "fatal: Invalid whitespace option: '${1#*=}'"
 			;;
 		esac
 		;;
@@ -358,7 +358,7 @@ do
 		force_rebase=t
 		;;
 	-C*[!0-9]*)
-		die "switch \`C' expects a numerical value"
+		die "fatal: switch \`C' expects a numerical value"
 		;;
 	-C*)
 		git_am_opt="$git_am_opt $1"
Johannes Schindelin· Nov 21, 2018, 14:06 UTC · re: Junio C Hamano · lore

Re: [PATCH 1/1] legacy-rebase: backport -C<n> and --whitespace=<option> checks

Hi Junio,
On Wed, 21 Nov 2018, Junio C Hamano wrote:
Show 11 quoted lines
> Carlo Arenas <carenas@gmail.com> writes:
> 
> > Tested-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
> >
> > the C version prepends: "fatal: " unlike the shell version for both
> > error messages
> 
> In addition, "Invalid whitespace option" says 'bad', not
> '--whitespace=bad', in the builtin version.
> 
> I think the following would address both issues.
Yes! Thank you. Can you squash it in?

Thanks, Dscho

Show 30 quoted lines
> 
> 
>  git-legacy-rebase.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/git-legacy-rebase.sh b/git-legacy-rebase.sh
> index ced0635326..b97ffdc9dd 100755
> --- a/git-legacy-rebase.sh
> +++ b/git-legacy-rebase.sh
> @@ -340,7 +340,7 @@ do
>  		warn|nowarn|error|error-all)
>  			;; # okay, known whitespace option
>  		*)
> -			die "Invalid whitespace option: '${1%*=}'"
> +			die "fatal: Invalid whitespace option: '${1#*=}'"
>  			;;
>  		esac
>  		;;
> @@ -358,7 +358,7 @@ do
>  		force_rebase=t
>  		;;
>  	-C*[!0-9]*)
> -		die "switch \`C' expects a numerical value"
> +		die "fatal: switch \`C' expects a numerical value"
>  		;;
>  	-C*)
>  		git_am_opt="$git_am_opt $1"
> 
> 
> 

← back to recent threads