зеркало из https://github.com/microsoft/git.git
Provide 'git notes get-ref' to easily retrieve current notes ref
Script may use 'git notes get-ref' to easily retrieve the current notes ref. Suggested-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
305ddd444e
Коммит
618cd75707
|
@ -19,6 +19,7 @@ SYNOPSIS
|
|||
'git notes' merge --abort [-v | -q]
|
||||
'git notes' remove [<object>]
|
||||
'git notes' prune [-n | -v]
|
||||
'git notes' get-ref
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
|
@ -109,6 +110,10 @@ remove::
|
|||
prune::
|
||||
Remove all notes for non-existing/unreachable objects.
|
||||
|
||||
get-ref::
|
||||
Print the current notes ref. This provides an easy way to
|
||||
retrieve the current notes ref (e.g. from scripts).
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-f::
|
||||
|
|
|
@ -31,6 +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",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
@ -82,6 +83,11 @@ static const char * const git_notes_prune_usage[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
static const char * const git_notes_get_ref_usage[] = {
|
||||
"git notes get-ref",
|
||||
NULL
|
||||
};
|
||||
|
||||
static const char note_template[] =
|
||||
"\n"
|
||||
"#\n"
|
||||
|
@ -1002,6 +1008,21 @@ static int prune(int argc, const char **argv, const char *prefix)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int get_ref(int argc, const char **argv, const char *prefix)
|
||||
{
|
||||
struct option options[] = { OPT_END() };
|
||||
argc = parse_options(argc, argv, prefix, options,
|
||||
git_notes_get_ref_usage, 0);
|
||||
|
||||
if (argc) {
|
||||
error("too many parameters");
|
||||
usage_with_options(git_notes_get_ref_usage, options);
|
||||
}
|
||||
|
||||
puts(default_notes_ref());
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cmd_notes(int argc, const char **argv, const char *prefix)
|
||||
{
|
||||
int result;
|
||||
|
@ -1040,6 +1061,8 @@ int cmd_notes(int argc, const char **argv, const char *prefix)
|
|||
result = remove_cmd(argc, argv, prefix);
|
||||
else if (!strcmp(argv[0], "prune"))
|
||||
result = prune(argc, argv, prefix);
|
||||
else if (!strcmp(argv[0], "get-ref"))
|
||||
result = get_ref(argc, argv, prefix);
|
||||
else {
|
||||
result = error("Unknown subcommand: %s", argv[0]);
|
||||
usage_with_options(git_notes_usage, options);
|
||||
|
|
|
@ -1058,4 +1058,23 @@ test_expect_success 'git notes copy diagnoses too many or too few parameters' '
|
|||
test_must_fail git notes copy one two three
|
||||
'
|
||||
|
||||
test_expect_success 'git notes get-ref (no overrides)' '
|
||||
git config --unset core.notesRef &&
|
||||
unset GIT_NOTES_REF &&
|
||||
test "$(git notes get-ref)" = "refs/notes/commits"
|
||||
'
|
||||
|
||||
test_expect_success 'git notes get-ref (core.notesRef)' '
|
||||
git config core.notesRef refs/notes/foo &&
|
||||
test "$(git notes get-ref)" = "refs/notes/foo"
|
||||
'
|
||||
|
||||
test_expect_success 'git notes get-ref (GIT_NOTES_REF)' '
|
||||
test "$(GIT_NOTES_REF=refs/notes/bar git notes get-ref)" = "refs/notes/bar"
|
||||
'
|
||||
|
||||
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_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче