Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote: > diff --git a/builtin-fetch.c b/builtin-fetch.c > index ee93d3a..d701550 100644 > --- a/builtin-fetch.c > +++ b/builtin-fetch.c > @@ -534,6 +534,25 @@ static void find_non_local_tags(struct transport *transport, > string_list_clear(&new_refs, 0); > } > > +static void check_ref_map(struct ref *ref_map) > +{ > + int flag; > + unsigned char sha1[20]; > + const char *HEAD; > + > + if (is_bare_repository()) > + return; > + > + HEAD = resolve_ref("HEAD", sha1, 1, &flag); I'd rather see local variables named lowercase. Constants should be the only thing that is all uppercase. > @@ -558,6 +577,7 @@ static int do_fetch(struct transport *transport, > } > > ref_map = get_ref_map(transport, refs, ref_count, tags, &autotags); > + check_ref_map(ref_map); This should only be called if update_head_ok is false. So maybe: if (!update_head_ok) check_ref_map(ref_map) > diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh > index 9aae496..cd8b550 100755 > --- a/t/t5510-fetch.sh > +++ b/t/t5510-fetch.sh > @@ -323,4 +323,10 @@ test_expect_success 'auto tag following fetches minimum' ' > ) > ' > > +test_expect_success 'refuse to fetch into the current branch' ' > + > + test_must_fail git fetch . side:master > + > +' > + Repeat this test, but with --update-head-ok and expect success, since the check_ref_map logic is conditional on that? -- Shawn. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html