Junio C Hamano <gitster@xxxxxxxxx> writes: > So we need the set of new rules, say, for 1.7.0 release. A strawman? > > Assume that these are the only refs that exist: > > refs/remotes/origin/{master,next,nitfol} > refs/remotes/xyzzy/{frotz,nitfol} > refs/heads/master Sorry, I had this as refs/heads/{master,mine} in my initial draft but removed the 'mine' branch by mistake; the first item in #0 does not make sense without it. > refs/tags/v1.0.0 > > #0. These will stay as is: > > $ git checkout mine ;# switches to the branch > $ git checkout $any_committish^0 ;# detaches > > #1. These used to detach, but will create a local branch > > $ git checkout origin/next ;# as if with -t > $ git checkout xyzzy/frotz ;# as if with -t (origin is not special) > > #2. These are allowed only when unambiguous and there is no local branch yet. > > $ git checkout next ;# ok > $ git checkout frotz ;# ok (origin is not special) > $ git checkout nitfol ;# not ok (ambiguous and origin is not special) > > #3. These used to detach, but what should we do? > > $ git checkout v1.0.0 ;# detach, or refuse??? > $ git checkout origin/master ;# detach, or refuse??? > > I can buy 0, 1, and 2, and I think it is a minor inconvenience if we > started refusing to detach in case #3, as people who want to detach can > always suffix ^0 or ~0 to make it a general committish. > > Did I cover all cases? -- 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