Skip to content

Commit

Permalink
Do not merge random set of refs out of wildcarded refs
Browse files Browse the repository at this point in the history
When your fetch configuration has only the wildcards, we would
pick the lexicographically first ref from the remote side for
merging, which was complete nonsense.  Make sure nothing except
the one that is specified with branch.*.merge is merged in this
case.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Jan 1, 2007
1 parent 63c97ce commit fbc9012
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion git-parse-remote.sh
Original file line number Diff line number Diff line change
Expand Up @@ -76,16 +76,32 @@ get_remote_default_refs_for_push () {
# from get_remote_refs_for_fetch when it deals with refspecs
# supplied on the command line. $ls_remote_result has the list
# of refs available at remote.
#
# The first token returned is either "explicit" or "glob"; this
# is to help prevent randomly "globbed" ref from being chosen as
# a merge candidate
expand_refs_wildcard () {
first_one=yes
for ref
do
lref=${ref#'+'}
# a non glob pattern is given back as-is.
expr "z$lref" : 'zrefs/.*/\*:refs/.*/\*$' >/dev/null || {
if test -n "$first_one"
then
echo "explicit"
first_one=
fi
echo "$ref"
continue
}

# glob
if test -n "$first_one"
then
echo "glob"
first_one=
fi
from=`expr "z$lref" : 'z\(refs/.*/\)\*:refs/.*/\*$'`
to=`expr "z$lref" : 'zrefs/.*/\*:\(refs/.*/\)\*$'`
local_force=
Expand Down Expand Up @@ -116,7 +132,8 @@ canon_refs_list_for_fetch () {
if test "$1" = "-d"
then
shift ; remote="$1" ; shift
set x $(expand_refs_wildcard "$@")
set $(expand_refs_wildcard "$@")
is_explicit="$1"
shift
if test "$remote" = "$(get_default_remote)"
then
Expand All @@ -125,6 +142,10 @@ canon_refs_list_for_fetch () {
merge_branches=$(git-repo-config \
--get-all "branch.${curr_branch}.merge")
fi
if test -z "$merge_branches" && test $is_explicit != explicit
then
merge_branches=..this.will.never.match.any.ref..
fi
fi
for ref
do
Expand Down

0 comments on commit fbc9012

Please sign in to comment.