Duy Nguyen <pclouds@xxxxxxxxx> writes: > Prevent is a strong word. I meant we only do it if they force > it. Something like this.. > > -- 8< -- > diff --git a/branch.c b/branch.c > index 723a36b..3f0540f 100644 > --- a/branch.c > +++ b/branch.c > @@ -251,6 +251,11 @@ void create_branch(const char *head, > forcing = 1; > } > > + if (!force && dwim_ref(name, strlen(name), sha1, &real_ref)) > + die(_("creating ref refs/heads/%s makes %s ambiguous.\n" > + "Use -f to create it anyway."), > + name, name); Does this check still allow you to create a branch "refs/heads/next" and then later create a branch "next"? The latter will introduce an ambiguity without any prevention, even though the prevention would trigger if the order in which these two branches are created is swapped--- the end result has ambiguity but the safety covers only one avenue to the confusing situation. And the only way I can think of to avoid that kind of confusion is to forbid creation of a subset of possible names by reserving a set of known (but arbitrary) prefixes---which I am not sure is a good way to go. At least not yet. So... -- 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