revision: forbid combining --graph and --no-walk
authorDongcan Jiang <dongcan.jiang@gmail.com>
Wed, 11 Mar 2015 02:13:02 +0000 (10:13 +0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 19 Mar 2015 18:07:51 +0000 (11:07 -0700)
Because "--graph" is about connected history while --no-walk is
about discrete points, it does not make sense to allow these two
options at the same time. [1]

This change makes a few calls to "show --graph" fail in t4052, but
asking to show one commit with graph is a nonsensical thing to do.
Thus, tests on "show --graph" in t4052 have been removed [2,3].
Same tests on "show" without --graph option have already been tested
in 4052.

3 testcases have been added to test this patch.

[1]: http://article.gmane.org/gmane.comp.version-control.git/216083
[2]: http://article.gmane.org/gmane.comp.version-control.git/264950
[3]: http://article.gmane.org/gmane.comp.version-control.git/265107

Helped-By: Eric Sunshine <sunshine@sunshineco.com>
Helped-By: René Scharfe <l.s.r@web.de>
Helped-By: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Dongcan Jiang <dongcan.jiang@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/rev-list-options.txt
revision.c
t/t4052-stat-output.sh
t/t4202-log.sh
t/t6014-rev-list-all.sh
t/t7007-show.sh
index 2984f407a9f3084235fd0207a82ea44a424942ed..890775b0f6358981b0a1b30409e48daf889e1623 100644 (file)
@@ -673,6 +673,7 @@ These options are mostly targeted for packing of Git repositories.
        given on the command line. Otherwise (if `sorted` or no argument
        was given), the commits are shown in reverse chronological order
        by commit time.
        given on the command line. Otherwise (if `sorted` or no argument
        was given), the commits are shown in reverse chronological order
        by commit time.
+       Cannot be combined with `--graph`.
 
 --do-walk::
        Overrides a previous `--no-walk`.
 
 --do-walk::
        Overrides a previous `--no-walk`.
@@ -775,6 +776,7 @@ you would get an output like this:
        on the left hand side of the output.  This may cause extra lines
        to be printed in between commits, in order for the graph history
        to be drawn properly.
        on the left hand side of the output.  This may cause extra lines
        to be printed in between commits, in order for the graph history
        to be drawn properly.
+       Cannot be combined with `--no-walk`.
 +
 This enables parent rewriting, see 'History Simplification' below.
 +
 +
 This enables parent rewriting, see 'History Simplification' below.
 +
index 86406a26a2d4599ea401d1faa9a817cadb3b7bcd..f594a8d8201bbfec4ef7ddddf12a9348dbf2fbe1 100644 (file)
@@ -2337,6 +2337,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
 
        if (revs->reflog_info && revs->graph)
                die("cannot combine --walk-reflogs with --graph");
 
        if (revs->reflog_info && revs->graph)
                die("cannot combine --walk-reflogs with --graph");
+       if (revs->no_walk && revs->graph)
+               die("cannot combine --no-walk with --graph");
        if (!revs->reflog_info && revs->grep_filter.use_reflog_filter)
                die("cannot use --grep-reflog without --walk-reflogs");
 
        if (!revs->reflog_info && revs->grep_filter.use_reflog_filter)
                die("cannot use --grep-reflog without --walk-reflogs");
 
index b68afefa3ce2bf8ad810cee2d6ab108d4f1219ba..babd2ead88182e7b212486d0ae753f51d5deac76 100755 (executable)
@@ -99,7 +99,7 @@ do
                test_cmp "$expect" actual
        '
 
                test_cmp "$expect" actual
        '
 
-       test "$cmd" != diff || continue
+       case "$cmd" in diff|show) continue;; esac
 
        test_expect_success "$cmd --graph $verb COLUMNS (big change)" '
                COLUMNS=200 git $cmd $args --graph >output
 
        test_expect_success "$cmd --graph $verb COLUMNS (big change)" '
                COLUMNS=200 git $cmd $args --graph >output
@@ -127,7 +127,7 @@ do
                test_cmp "$expect" actual
        '
 
                test_cmp "$expect" actual
        '
 
-       test "$cmd" != diff || continue
+       case "$cmd" in diff|show) continue;; esac
 
        test_expect_success "$cmd --graph $verb not enough COLUMNS (big change)" '
                COLUMNS=40 git $cmd $args --graph >output
 
        test_expect_success "$cmd --graph $verb not enough COLUMNS (big change)" '
                COLUMNS=40 git $cmd $args --graph >output
@@ -155,7 +155,7 @@ do
                test_cmp "$expect" actual
        '
 
                test_cmp "$expect" actual
        '
 
-       test "$cmd" != diff || continue
+       case "$cmd" in diff|show) continue;; esac
 
        test_expect_success "$cmd --graph $verb statGraphWidth config" '
                git -c diff.statGraphWidth=26 $cmd $args --graph >output
 
        test_expect_success "$cmd --graph $verb statGraphWidth config" '
                git -c diff.statGraphWidth=26 $cmd $args --graph >output
@@ -196,7 +196,7 @@ do
                test_cmp expect actual
        '
 
                test_cmp expect actual
        '
 
-       test "$cmd" != diff || continue
+       case "$cmd" in diff|show) continue;; esac
 
        test_expect_success "$cmd --stat-width=width --graph with big change" '
                git $cmd $args --stat-width=40 --graph >output
 
        test_expect_success "$cmd --stat-width=width --graph with big change" '
                git $cmd $args --stat-width=40 --graph >output
@@ -236,7 +236,7 @@ do
                test_cmp expect actual
        '
 
                test_cmp expect actual
        '
 
-       test "$cmd" != diff || continue
+       case "$cmd" in diff|show) continue;; esac
 
        test_expect_success "$cmd --stat=width --graph with big change is balanced" '
                git $cmd $args --stat-width=60 --graph >output &&
 
        test_expect_success "$cmd --stat=width --graph with big change is balanced" '
                git $cmd $args --stat-width=60 --graph >output &&
@@ -270,7 +270,7 @@ do
                test_cmp "$expect" actual
        '
 
                test_cmp "$expect" actual
        '
 
-       test "$cmd" != diff || continue
+       case "$cmd" in diff|show) continue;; esac
 
        test_expect_success "$cmd --graph $verb COLUMNS (long filename)" '
                COLUMNS=200 git $cmd $args --graph >output
 
        test_expect_success "$cmd --graph $verb COLUMNS (long filename)" '
                COLUMNS=200 git $cmd $args --graph >output
@@ -299,7 +299,7 @@ do
                test_cmp "$expect" actual
        '
 
                test_cmp "$expect" actual
        '
 
-       test "$cmd" != diff || continue
+       case "$cmd" in diff|show) continue;; esac
 
        test_expect_success COLUMNS_CAN_BE_1 \
                "$cmd --graph $verb prefix greater than COLUMNS (big change)" '
 
        test_expect_success COLUMNS_CAN_BE_1 \
                "$cmd --graph $verb prefix greater than COLUMNS (big change)" '
index 99ab7ca21f2673e646232d9c07f77c8ed2f5f998..a9806520fb1733c0586bfed50a26d41ee5625cb3 100755 (executable)
@@ -872,4 +872,8 @@ test_expect_success GPG 'log --graph --show-signature for merged tag' '
        grep "^| | gpg: Good signature" actual
 '
 
        grep "^| | gpg: Good signature" actual
 '
 
+test_expect_success 'log --graph --no-walk is forbidden' '
+       test_must_fail git log --graph --no-walk
+'
+
 test_done
 test_done
index 991ab4a65bc10b3b2a0f82feaa4873142439ba8b..c9bedd29cba4aac6b7db1aa8f1698fc5eac11b15 100755 (executable)
@@ -35,4 +35,8 @@ test_expect_success 'repack does not lose detached HEAD' '
 
 '
 
 
 '
 
+test_expect_success 'rev-list --graph --no-walk is forbidden' '
+       test_must_fail git rev-list --graph --no-walk HEAD
+'
+
 test_done
 test_done
index 1b824fe5ede3b933350696b78b6f53c1c69d0fff..42d3db624686998f49d2fb7c80b190eee14a3e9e 100755 (executable)
@@ -124,4 +124,8 @@ test_expect_success '--quiet suppresses diff' '
        test_cmp expect actual
 '
 
        test_cmp expect actual
 '
 
+test_expect_success 'show --graph is forbidden' '
+  test_must_fail git show --graph HEAD
+'
+
 test_done
 test_done