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>maint
parent
cadd8a7d4d
commit
d945d4be20
|
@ -99,13 +99,17 @@ get_remote_default_refs_for_push () {
|
||||||
expand_refs_wildcard () {
|
expand_refs_wildcard () {
|
||||||
for ref
|
for ref
|
||||||
do
|
do
|
||||||
|
lref=${ref#'+'}
|
||||||
# a non glob pattern is given back as-is.
|
# 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"
|
echo "$ref"
|
||||||
continue
|
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" |
|
echo "$ls_remote_result" |
|
||||||
(
|
(
|
||||||
IFS=' '
|
IFS=' '
|
||||||
|
@ -117,7 +121,7 @@ expand_refs_wildcard () {
|
||||||
then
|
then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
echo "${name}:${to}${mapped}"
|
echo "${local_force}${name}:${to}${mapped}"
|
||||||
done
|
done
|
||||||
)
|
)
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue