revision: forbid combining --graph and --no-walk

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>
This commit is contained in:
Dongcan Jiang 2015-03-11 10:13:02 +08:00 коммит произвёл Junio C Hamano
Родитель 9874fca712
Коммит 695985f483
6 изменённых файлов: 23 добавлений и 7 удалений

Просмотреть файл

@ -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 given on the command line. Otherwise (if `sorted` or no argument
was given), the commits are shown in reverse chronological order was given), the commits are shown in reverse chronological order
by commit time. by commit time.
Cannot be combined with `--graph`.
--do-walk:: --do-walk::
Overrides a previous `--no-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 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 printed in between commits, in order for the graph history
to be drawn properly. 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.
+ +

Просмотреть файл

@ -2337,6 +2337,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
if (revs->reflog_info && revs->graph) if (revs->reflog_info && revs->graph)
die("cannot combine --walk-reflogs with --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) if (!revs->reflog_info && revs->grep_filter.use_reflog_filter)
die("cannot use --grep-reflog without --walk-reflogs"); die("cannot use --grep-reflog without --walk-reflogs");

Просмотреть файл

@ -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)" ' test_expect_success "$cmd --graph $verb COLUMNS (big change)" '
COLUMNS=200 git $cmd $args --graph >output 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)" ' test_expect_success "$cmd --graph $verb not enough COLUMNS (big change)" '
COLUMNS=40 git $cmd $args --graph >output 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" ' test_expect_success "$cmd --graph $verb statGraphWidth config" '
git -c diff.statGraphWidth=26 $cmd $args --graph >output 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" ' test_expect_success "$cmd --stat-width=width --graph with big change" '
git $cmd $args --stat-width=40 --graph >output 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" ' test_expect_success "$cmd --stat=width --graph with big change is balanced" '
git $cmd $args --stat-width=60 --graph >output && 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)" ' test_expect_success "$cmd --graph $verb COLUMNS (long filename)" '
COLUMNS=200 git $cmd $args --graph >output 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 \ test_expect_success COLUMNS_CAN_BE_1 \
"$cmd --graph $verb prefix greater than COLUMNS (big change)" ' "$cmd --graph $verb prefix greater than COLUMNS (big change)" '

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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