git-fetch: allow forcing glob pattern in refspec

Building on top of the earlier refspec glob pattern enhancement,
this allows a glob pattern to say the updates should be forced
by prefixing it with '+' as usual, like this:

	Pull: +refs/heads/*:refs/remotes/origin/*

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2006-11-25 01:10:10 -08:00
parent cadd8a7d4d
commit d945d4be20

View file

@ -99,13 +99,17 @@ get_remote_default_refs_for_push () {
expand_refs_wildcard () {
for ref
do
lref=${ref#'+'}
# a non glob pattern is given back as-is.
expr "z$ref" : 'zrefs/.*/\*:refs/.*/\*$' >/dev/null || {
expr "z$lref" : 'zrefs/.*/\*:refs/.*/\*$' >/dev/null || {
echo "$ref"
continue
}
from=`expr "z$ref" : 'z\(refs/.*/\)\*:refs/.*/\*$'`
to=`expr "z$ref" : 'zrefs/.*/\*:\(refs/.*/\)\*$'`
from=`expr "z$lref" : 'z\(refs/.*/\)\*:refs/.*/\*$'`
to=`expr "z$lref" : 'zrefs/.*/\*:\(refs/.*/\)\*$'`
local_force=
test "z$lref" = "z$ref" || local_force='+'
echo "$ls_remote_result" |
(
IFS=' '
@ -117,7 +121,7 @@ expand_refs_wildcard () {
then
continue
fi
echo "${name}:${to}${mapped}"
echo "${local_force}${name}:${to}${mapped}"
done
)
done