From 7249e91287443c02b2c7eed272a579dae44984ad Mon Sep 17 00:00:00 2001 From: Jeff King Date: Tue, 29 Mar 2011 16:57:47 -0400 Subject: revision.c: support --notes command-line option We already have --show-notes, but it has a few shortcomings: 1. Using --show-notes= implies that we should also show the default notes. Which means you also need to use --no-standard-notes if you want to suppress them. 2. It is negated by --no-notes, which doesn't match. 3. It's too long to type. :) This patch introduces --notes, which behaves exactly like --show-notes, except that using "--notes=" does not imply showing the default notes. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano diff --git a/revision.c b/revision.c index 315a7f4..c4ffee4 100644 --- a/revision.c +++ b/revision.c @@ -1367,17 +1367,22 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg revs->verbose_header = 1; revs->pretty_given = 1; get_commit_format(arg+9, revs); - } else if (!strcmp(arg, "--show-notes")) { + } else if (!strcmp(arg, "--show-notes") || !strcmp(arg, "--notes")) { revs->show_notes = 1; revs->show_notes_given = 1; revs->notes_opt.use_default_notes = 1; - } else if (!prefixcmp(arg, "--show-notes=")) { + } else if (!prefixcmp(arg, "--show-notes=") || + !prefixcmp(arg, "--notes=")) { struct strbuf buf = STRBUF_INIT; revs->show_notes = 1; revs->show_notes_given = 1; - if (revs->notes_opt.use_default_notes < 0) - revs->notes_opt.use_default_notes = 1; - strbuf_addstr(&buf, arg+13); + if (!prefixcmp(arg, "--show-notes")) { + if (revs->notes_opt.use_default_notes < 0) + revs->notes_opt.use_default_notes = 1; + strbuf_addstr(&buf, arg+13); + } + else + strbuf_addstr(&buf, arg+8); expand_notes_ref(&buf); string_list_append(&revs->notes_opt.extra_notes_refs, strbuf_detach(&buf, NULL)); diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh index 1921ca3..f0e7a58 100755 --- a/t/t3301-notes.sh +++ b/t/t3301-notes.sh @@ -247,6 +247,28 @@ do ' done +test_expect_success 'setup alternate notes ref' ' + git notes --ref=alternate add -m alternate +' + +test_expect_success 'git log --notes shows default notes' ' + git log -1 --notes >output && + grep xyzzy output && + ! grep alternate output +' + +test_expect_success 'git log --notes=X shows only X' ' + git log -1 --notes=alternate >output && + ! grep xyzzy output && + grep alternate output +' + +test_expect_success 'git log --notes --notes=X shows both' ' + git log -1 --notes --notes=alternate >output && + grep xyzzy output && + grep alternate output +' + test_expect_success 'create -m notes (setup)' ' : > a5 && git add a5 && -- cgit v0.10.2-6-g49f6