зеркало из https://github.com/microsoft/git.git
revision.c: make --no-notes reset --notes list
With most command line options, later instances of an option override earlier ones. With cumulative options like "--notes", however, there is no way to say "forget the --notes I gave you before". Let's have --no-notes trigger this forgetting, so that: git log --notes=foo --no-notes --notes=bar will show only the "bar" notes. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
7249e91287
Коммит
92e0d42539
|
@ -1389,6 +1389,12 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
|
|||
} else if (!strcmp(arg, "--no-notes")) {
|
||||
revs->show_notes = 0;
|
||||
revs->show_notes_given = 1;
|
||||
revs->notes_opt.use_default_notes = -1;
|
||||
/* we have been strdup'ing ourselves, so trick
|
||||
* string_list into free()ing strings */
|
||||
revs->notes_opt.extra_notes_refs.strdup_strings = 1;
|
||||
string_list_clear(&revs->notes_opt.extra_notes_refs, 0);
|
||||
revs->notes_opt.extra_notes_refs.strdup_strings = 0;
|
||||
} else if (!strcmp(arg, "--standard-notes")) {
|
||||
revs->show_notes_given = 1;
|
||||
revs->notes_opt.use_default_notes = 1;
|
||||
|
|
|
@ -269,6 +269,22 @@ test_expect_success 'git log --notes --notes=X shows both' '
|
|||
grep alternate output
|
||||
'
|
||||
|
||||
test_expect_success 'git log --no-notes resets default state' '
|
||||
git log -1 --notes --notes=alternate \
|
||||
--no-notes --notes=alternate \
|
||||
>output &&
|
||||
! grep xyzzy output &&
|
||||
grep alternate output
|
||||
'
|
||||
|
||||
test_expect_success 'git log --no-notes resets ref list' '
|
||||
git log -1 --notes --notes=alternate \
|
||||
--no-notes --notes \
|
||||
>output &&
|
||||
grep xyzzy output &&
|
||||
! grep alternate output
|
||||
'
|
||||
|
||||
test_expect_success 'create -m notes (setup)' '
|
||||
: > a5 &&
|
||||
git add a5 &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче