From: "W. Trevor King" <wking@xxxxxxxxxx> Useful for debugging refs that don't seem to be expanding correctly. Signed-off-by: W. Trevor King <wking@xxxxxxxxxx> --- Documentation/git-notes.txt | 6 +++++- builtin/notes.c | 26 +++++++++++++++++++++----- t/t3301-notes.sh | 8 ++++++++ 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/Documentation/git-notes.txt b/Documentation/git-notes.txt index b95aafa..a93d211 100644 --- a/Documentation/git-notes.txt +++ b/Documentation/git-notes.txt @@ -19,7 +19,7 @@ SYNOPSIS 'git notes' merge --abort [-v | -q] 'git notes' remove [--ignore-missing] [--stdin] [<object>...] 'git notes' prune [-n | -v] -'git notes' get-ref +'git notes' get-ref [-e] DESCRIPTION @@ -165,6 +165,10 @@ OPTIONS input (there is no reason you cannot combine this with object names from the command line). +-e:: +--expand:: + Expand the notes ref before printing it. + -n:: --dry-run:: Do not remove anything; just report the object names whose notes diff --git a/builtin/notes.c b/builtin/notes.c index 3644d14..17c6136 100644 --- a/builtin/notes.c +++ b/builtin/notes.c @@ -31,7 +31,7 @@ static const char * const git_notes_usage[] = { "git notes merge --abort [-v | -q]", "git notes [--ref <notes_ref>] remove [<object>...]", "git notes [--ref <notes_ref>] prune [-n | -v]", - "git notes [--ref <notes_ref>] get-ref", + "git notes [--ref <notes_ref>] get-ref [-e]", NULL }; @@ -84,7 +84,7 @@ static const char * const git_notes_prune_usage[] = { }; static const char * const git_notes_get_ref_usage[] = { - "git notes get-ref", + "git notes get-ref [<options>]", NULL }; @@ -1046,16 +1046,32 @@ static int prune(int argc, const char **argv, const char *prefix) static int get_ref(int argc, const char **argv, const char *prefix) { - struct option options[] = { OPT_END() }; + const char *ref; + struct strbuf buf = STRBUF_INIT; + int expand = 0; + struct option options[] = { + OPT_BOOL('e', "expand", &expand, + "expand the notes ref before printing it"), + OPT_END() + }; argc = parse_options(argc, argv, prefix, options, git_notes_get_ref_usage, 0); - if (argc) { + if (argc > 1) { error("too many parameters"); usage_with_options(git_notes_get_ref_usage, options); } - puts(default_notes_ref()); + ref = default_notes_ref(); + if (expand) { + strbuf_insert(&buf, 0, ref, strlen(ref)); + expand_notes_ref(&buf); + puts(buf.buf); + strbuf_release(&buf); + } else { + puts(ref); + } + return 0; } diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh index 16de05a..c0486a0 100755 --- a/t/t3301-notes.sh +++ b/t/t3301-notes.sh @@ -1222,4 +1222,12 @@ test_expect_success 'git notes get-ref (--ref)' ' test "$(GIT_NOTES_REF=refs/notes/bar git notes --ref=baz get-ref)" = "refs/notes/baz" ' +test_expect_success 'git notes get-ref (no expand)' ' + test "$(GIT_NOTES_REF=commits git notes get-ref)" = "commits" +' + +test_expect_success 'git notes get-ref (--expand)' ' + test "$(GIT_NOTES_REF=commits git notes get-ref --expand)" = "refs/notes/commits" +' + test_done -- 1.7.12.176.g3fc0e4c.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html