mirror of
https://github.com/git/git.git
synced 2024-11-24 02:17:02 +08:00
notes: fix minimum number of parameters to "copy" subcommand
The builtin/notes.c::copy() function is prepared to handle either
one or two arguments given from the command line; when one argument
is given, to-obj defaults to HEAD.
bbb1b8a3
("notes: check number of parameters to "git notes copy"",
2010-06-28) tried to make sure "git notes copy" (with *no* other
argument) does not dereference NULL by checking the number of
parameters, but it incorrectly insisted that we need two arguments,
instead of either one or two. This disabled the defaulting to-obj
to HEAD.
Correct it.
Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
8af69cf3e2
commit
d58deb9c4e
@ -10,7 +10,7 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git notes' [list [<object>]]
|
||||
'git notes' add [-f] [--allow-empty] [-F <file> | -m <msg> | (-c | -C) <object>] [<object>]
|
||||
'git notes' copy [-f] ( --stdin | <from-object> <to-object> )
|
||||
'git notes' copy [-f] ( --stdin | <from-object> [<to-object>] )
|
||||
'git notes' append [--allow-empty] [-F <file> | -m <msg> | (-c | -C) <object>] [<object>]
|
||||
'git notes' edit [--allow-empty] [<object>]
|
||||
'git notes' show [<object>]
|
||||
@ -68,8 +68,8 @@ add::
|
||||
subcommand).
|
||||
|
||||
copy::
|
||||
Copy the notes for the first object onto the second object.
|
||||
Abort if the second object already has notes, or if the first
|
||||
Copy the notes for the first object onto the second object (defaults to
|
||||
HEAD). Abort if the second object already has notes, or if the first
|
||||
object has none (use -f to overwrite existing notes to the
|
||||
second object). This subcommand is equivalent to:
|
||||
`git notes add [-f] -C $(git notes list <from-object>) <to-object>`
|
||||
|
@ -513,7 +513,7 @@ static int copy(int argc, const char **argv, const char *prefix)
|
||||
}
|
||||
}
|
||||
|
||||
if (argc < 2) {
|
||||
if (argc < 1) {
|
||||
error(_("too few parameters"));
|
||||
usage_with_options(git_notes_copy_usage, options);
|
||||
}
|
||||
|
@ -864,6 +864,24 @@ test_expect_success 'append to note from other note with "git notes append -c"'
|
||||
'
|
||||
|
||||
test_expect_success 'copy note with "git notes copy"' '
|
||||
commit=$(git rev-parse 4th) &&
|
||||
cat >expect <<-EOF &&
|
||||
commit $commit
|
||||
Author: A U Thor <author@example.com>
|
||||
Date: Thu Apr 7 15:16:13 2005 -0700
|
||||
|
||||
${indent}4th
|
||||
|
||||
Notes:
|
||||
${indent}This is a blob object
|
||||
EOF
|
||||
git notes copy 8th 4th &&
|
||||
git log 3rd..4th >actual &&
|
||||
test_cmp expect actual &&
|
||||
test "$(git note list 4th)" = "$(git note list 8th)"
|
||||
'
|
||||
|
||||
test_expect_success 'copy note with "git notes copy" with default' '
|
||||
test_commit 11th &&
|
||||
commit=$(git rev-parse HEAD) &&
|
||||
cat >expect <<-EOF &&
|
||||
@ -878,7 +896,7 @@ test_expect_success 'copy note with "git notes copy"' '
|
||||
${indent}
|
||||
${indent}yet another note
|
||||
EOF
|
||||
git notes copy HEAD^ HEAD &&
|
||||
git notes copy HEAD^ &&
|
||||
git log -1 >actual &&
|
||||
test_cmp expect actual &&
|
||||
test "$(git notes list HEAD)" = "$(git notes list HEAD^)"
|
||||
@ -892,6 +910,24 @@ test_expect_success 'prevent overwrite with "git notes copy"' '
|
||||
'
|
||||
|
||||
test_expect_success 'allow overwrite with "git notes copy -f"' '
|
||||
commit=$(git rev-parse HEAD) &&
|
||||
cat >expect <<-EOF &&
|
||||
commit $commit
|
||||
Author: A U Thor <author@example.com>
|
||||
Date: Thu Apr 7 15:23:13 2005 -0700
|
||||
|
||||
${indent}11th
|
||||
|
||||
Notes:
|
||||
${indent}This is a blob object
|
||||
EOF
|
||||
git notes copy -f HEAD~3 HEAD &&
|
||||
git log -1 >actual &&
|
||||
test_cmp expect actual &&
|
||||
test "$(git notes list HEAD)" = "$(git notes list HEAD~3)"
|
||||
'
|
||||
|
||||
test_expect_success 'allow overwrite with "git notes copy -f" with default' '
|
||||
commit=$(git rev-parse HEAD) &&
|
||||
cat >expect <<-EOF &&
|
||||
commit $commit
|
||||
@ -905,7 +941,7 @@ test_expect_success 'allow overwrite with "git notes copy -f"' '
|
||||
${indent}
|
||||
${indent}yet another note
|
||||
EOF
|
||||
git notes copy -f HEAD~2 HEAD &&
|
||||
git notes copy -f HEAD~2 &&
|
||||
git log -1 >actual &&
|
||||
test_cmp expect actual &&
|
||||
test "$(git notes list HEAD)" = "$(git notes list HEAD~2)"
|
||||
|
Loading…
Reference in New Issue
Block a user