]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Meta/CheckPush: really make sure 'match next' point on 'pu' matches 'next'
authorJunio C Hamano <gitster@pobox.com>
Wed, 18 Oct 2017 02:55:55 +0000 (11:55 +0900)
committerJunio C Hamano <gitster@pobox.com>
Wed, 18 Oct 2017 02:55:55 +0000 (11:55 +0900)
CheckPush

index e8e4a46c56b2cae4bdb8bd823f9cf6a6da6b41f1..d4d042ba9ac1ec1f0c89c667ff9f5da7653c45da 100755 (executable)
--- a/CheckPush
+++ b/CheckPush
@@ -55,13 +55,18 @@ do
        fi
 done
 
-if     next_tree=$(git rev-parse next^{tree}) &&
+if ! next_equiv=$(git rev-parse --verify 'jch^{/^### match next}' 2>/dev/null) ||
+   ! git diff --stat --exit-code next $next_equiv
+then
+       next_tree=$(git rev-parse next^{tree}) &&
        next_equiv=$(git rev-list --first-parent master..pu |
-               xargs -n1 sh -c '
-                       echo $(git rev-parse $1^{tree}) $1
-               ' - | sed -n -e "s/^$next_tree //p"
-       ) &&
-       test -n "$next_equiv"
+                       xargs -n1 sh -c '
+                               echo $(git rev-parse $1^{tree}) $1
+                       ' - | sed -n -e "s/^$next_tree //p"
+                   )
+fi
+
+if test -n "$next_equiv"
 then
        jch=$(git rev-list --first-parent master..jch | wc -l) &&
        pu=$(git rev-list --first-parent master..pu | wc -l) &&
@@ -72,7 +77,4 @@ then
        else
                echo "master..$next..next..$jch..jch..$pu..pu"
        fi
-elif match_next=$(git rev-parse 'jch^{/^### match next$}' 2>/dev/null)
-then
-       git diff --stat "$match_next" next
 fi