notes: make expand_notes_ref globally accessible

This function is useful for other commands besides "git
notes" which want to let users refer to notes by their
shorthand name.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2011-03-29 16:55:32 -04:00 committed by Junio C Hamano
parent 07514c83c2
commit 03bb5789cd
3 changed files with 13 additions and 10 deletions

View File

@ -100,16 +100,6 @@ struct msg_arg {
struct strbuf buf; struct strbuf buf;
}; };
static void expand_notes_ref(struct strbuf *sb)
{
if (!prefixcmp(sb->buf, "refs/notes/"))
return; /* we're happy */
else if (!prefixcmp(sb->buf, "notes/"))
strbuf_insert(sb, 0, "refs/", 5);
else
strbuf_insert(sb, 0, "refs/notes/", 11);
}
static int list_each_note(const unsigned char *object_sha1, static int list_each_note(const unsigned char *object_sha1,
const unsigned char *note_sha1, char *note_path, const unsigned char *note_sha1, char *note_path,
void *cb_data) void *cb_data)

10
notes.c
View File

@ -1285,3 +1285,13 @@ int copy_note(struct notes_tree *t,
return 0; return 0;
} }
void expand_notes_ref(struct strbuf *sb)
{
if (!prefixcmp(sb->buf, "refs/notes/"))
return; /* we're happy */
else if (!prefixcmp(sb->buf, "notes/"))
strbuf_insert(sb, 0, "refs/", 5);
else
strbuf_insert(sb, 0, "refs/notes/", 11);
}

View File

@ -307,4 +307,7 @@ void string_list_add_refs_by_glob(struct string_list *list, const char *glob);
void string_list_add_refs_from_colon_sep(struct string_list *list, void string_list_add_refs_from_colon_sep(struct string_list *list,
const char *globs); const char *globs);
/* Expand inplace a note ref like "foo" or "notes/foo" into "refs/notes/foo" */
void expand_notes_ref(struct strbuf *sb);
#endif #endif