From 695985f4837e7299dca10b5e45206dbd2c52c1e0 Mon Sep 17 00:00:00 2001 From: Dongcan Jiang Date: Wed, 11 Mar 2015 10:13:02 +0800 Subject: [PATCH] revision: forbid combining --graph and --no-walk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Helped-By: René Scharfe Helped-By: Junio C Hamano Signed-off-by: Dongcan Jiang Signed-off-by: Junio C Hamano --- Documentation/rev-list-options.txt | 2 ++ revision.c | 2 ++ t/t4052-stat-output.sh | 14 +++++++------- t/t4202-log.sh | 4 ++++ t/t6014-rev-list-all.sh | 4 ++++ t/t7007-show.sh | 4 ++++ 6 files changed, 23 insertions(+), 7 deletions(-) diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt index 2984f407a9..890775b0f6 100644 --- a/Documentation/rev-list-options.txt +++ b/Documentation/rev-list-options.txt @@ -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. + Cannot be combined with `--graph`. --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. + Cannot be combined with `--no-walk`. + This enables parent rewriting, see 'History Simplification' below. + diff --git a/revision.c b/revision.c index 86406a26a2..f594a8d820 100644 --- a/revision.c +++ b/revision.c @@ -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->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"); diff --git a/t/t4052-stat-output.sh b/t/t4052-stat-output.sh index b68afefa3c..babd2ead88 100755 --- a/t/t4052-stat-output.sh +++ b/t/t4052-stat-output.sh @@ -99,7 +99,7 @@ do 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 @@ -127,7 +127,7 @@ do 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 @@ -155,7 +155,7 @@ do 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 @@ -196,7 +196,7 @@ do 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 @@ -236,7 +236,7 @@ do 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 && @@ -270,7 +270,7 @@ do 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 @@ -299,7 +299,7 @@ do 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)" ' diff --git a/t/t4202-log.sh b/t/t4202-log.sh index 99ab7ca21f..a9806520fb 100755 --- a/t/t4202-log.sh +++ b/t/t4202-log.sh @@ -872,4 +872,8 @@ test_expect_success GPG 'log --graph --show-signature for merged tag' ' grep "^| | gpg: Good signature" actual ' +test_expect_success 'log --graph --no-walk is forbidden' ' + test_must_fail git log --graph --no-walk +' + test_done diff --git a/t/t6014-rev-list-all.sh b/t/t6014-rev-list-all.sh index 991ab4a65b..c9bedd29cb 100755 --- a/t/t6014-rev-list-all.sh +++ b/t/t6014-rev-list-all.sh @@ -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 diff --git a/t/t7007-show.sh b/t/t7007-show.sh index 1b824fe5ed..42d3db6246 100755 --- a/t/t7007-show.sh +++ b/t/t7007-show.sh @@ -124,4 +124,8 @@ test_expect_success '--quiet suppresses diff' ' test_cmp expect actual ' +test_expect_success 'show --graph is forbidden' ' + test_must_fail git show --graph HEAD +' + test_done