Re: [PATCH] rebase -i: remove undocumented '--verify' flag
On Mon, 22 Nov 2010, Matthieu Moy wrote:
Show 24 quoted lines
> Thomas Rast <trast@student.ethz.ch> writes:
>
>> Matthieu Moy wrote:
>>> Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> writes:
>>>
>>>> Remove the undocumented and unused '--verify' flag from interactive
>>>> rebase.
>>>
>>> I don't think this change is good. If a command has a --no-whatever
>>> flag, one expects the --whatever flag to exist too, even if it's a
>>> no-op.
>> [...]
>>> I think a better change would be to add a comment like
>>>
>>> --verify)
>>> # no-op, exists because --no-verify exists too.
>>
>> Shouldn't that be
>>
>> OK_TO_SKIP_PRE_REBASE=
>>
>> instead, so that it undoes the effect of an earlier --no-verify?
>
> Yes, right. Useful when an alias contains --no-whatever in particular.
Alright, how about something like this instead?
(I hope this is the correct way of including a patch. I have only used 'git send-email before'. I noticed that Jeff seems to remove the first three lines and put a '-- 8> --' before, but others do not. What does the mysterious header mean?)
----
From 90c14fe48ab921ae60000e4f9de02f97f867e273 Mon Sep 17 00:00:00 2001
From: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Date: Mon, 22 Nov 2010 20:42:50 +0100
Subject: [PATCH] rebase: support --verify
Interactive rebase allows the '--verify' option to be passed, but it will be ignored. Implement proper support for the option for both interactive and non-interactive rebase by making it override any previous '--no-verify'.
Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
---
Documentation/git-rebase.txt | 4 ++++
git-rebase--interactive.sh | 2 ++
git-rebase.sh | 3 +++
3 files changed, 9 insertions(+), 0 deletions(-)
Show changes to 3 files +9 −0
Documentation/git-rebase.txt, git-rebase--interactive.sh, git-rebase.sh
diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index f3753a8..1f5ce74 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -279,6 +279,10 @@ which makes little sense.
--no-verify::
This option bypasses the pre-rebase hook. See also linkgit:githooks[5].
+--verify::
+ Allows the pre-rebase hook to run, which is the default. This option can
+ be used to override --no-verify. See also linkgit:githooks[5].
+
-C<n>::
Ensure at least <n> lines of surrounding context match before
and after each change. When fewer lines of surrounding
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index a27952d..4eabe54 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -28,6 +28,7 @@ continue continue rebasing process
abort abort rebasing process and restore original branch
skip skip current patch and continue rebasing process
no-verify override pre-rebase hook from stopping the operation
+verify allow pre-rebase hook to run
root rebase all reachable commmits up to the root(s)
autosquash move commits that begin with squash!/fixup! under -i
"
@@ -727,6 +728,7 @@ do
OK_TO_SKIP_PRE_REBASE=yes
;;
--verify)
+ OK_TO_SKIP_PRE_REBASE=
;;
--continue)
is_standalone "$@" || usage
diff --git a/git-rebase.sh b/git-rebase.sh
index 3d194b1..595fca2 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -206,6 +206,9 @@ do
--no-verify)
OK_TO_SKIP_PRE_REBASE=yes
;;
+ --verify)
+ OK_TO_SKIP_PRE_REBASE=
+ ;;
--continue)
test -d "$dotest" -o -d "$GIT_DIR"/rebase-apply ||
die "No rebase in progress?"
--
1.7.3.2.190.gfb4ae