subtree: use "$*" instead of "$@" as appropriate
"$*" is for when you want to concatenate the args together,
whitespace-separated; and "$@" is for when you want them to be separate
strings.
There are several places in subtree that erroneously use $@ when
concatenating args together into an error message.
For instance, if the args are argv[1]="dead" and argv[2]="beef", then
the line
die "You must provide exactly one revision. Got: '$@'"
surely intends to call 'die' with the argument
argv[1]="You must provide exactly one revision. Got: 'dead beef'"
however, because the line used $@ instead of $*, it will actually call
'die' with the arguments
argv[1]="You must provide exactly one revision. Got: 'dead"
argv[2]="beef'"
This isn't a big deal, because 'die' concatenates its arguments together
anyway (using "$*"). But that doesn't change the fact that it was a
mistake to use $@ instead of $*, even though in the end $@ still ended
up doing the right thing.
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
parent
e2b11e4211
commit
a94f911072
|
|
@ -58,14 +58,14 @@ progress () {
|
|||
assert () {
|
||||
if ! "$@"
|
||||
then
|
||||
die "assertion failed: " "$@"
|
||||
die "assertion failed: $*"
|
||||
fi
|
||||
}
|
||||
|
||||
ensure_single_rev () {
|
||||
if test $# -ne 1
|
||||
then
|
||||
die "You must provide exactly one revision. Got: '$@'"
|
||||
die "You must provide exactly one revision. Got: '$*'"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -690,7 +690,7 @@ cmd_add () {
|
|||
|
||||
cmd_add_repository "$@"
|
||||
else
|
||||
say >&2 "error: parameters were '$@'"
|
||||
say >&2 "error: parameters were '$*'"
|
||||
die "Provide either a commit or a repository and commit."
|
||||
fi
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue