• J
    remote.c: fix "git push" weak match disambiguation · 6125796f
    Junio C Hamano 提交于
    When "git push A:B" is given, and A (or B) is not a full refname
    that begins with refs/, we require an unambiguous match with an
    existing ref.  For this purpose, a match with a local branch or
    a tag (i.e. refs/heads/A and refs/tags/A) is called a "strong
    match", and any other match is called a "weak match".  A partial
    refname is unambiguous when there is only one strong match with
    any number of weak matches, or when there is only one weak match
    and no other match.
    
    However, as reported by Sparse with Ramsay Jones recently,
    count_refspec_match() function had a bug where a variable in an
    inner block masked a different variable of the same name, which
    caused the weak matches to be ignored.
    
    This fixes it, and adds tests for the fix.
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    6125796f
remote.c 13.4 KB