On Mon, 11 Jul 2005, Junio C Hamano wrote: > > > Opinions? > > How about treating "master" a temporary thing --- "whatever I > happen to be working on right now"?
I'd not mind with this in theory, but it has the fundamental problem that we can end up losing sight of commits we have, and then have no way to reach them. Which is ok per se - sometimes you simply don't care about them, and I occasionally drop some commits on purpose when I've done something I decide to undo and then do a "git prune" to get rid of the objects. But I don't want this to happen _easily_. Your examples aren't actually very interesting: > - git branch <branch-name> ;# copies master to branch-name; > if branch-name exists in refs/heads, > warn and refuse. Override > with --force flag. > > - git checkout <branch-name> ;# copies branch-name to master; but > if master does not match any > of the other refs/heads/, warn > and refuse. Override with > --force flag. because those two examples end up avoiding the _real_ issue, which is the git checkout v2.6.12 case, which is exactly the case that would need a "--force" flag, since master is what you're working on before. And --force would drop that information. So I want something that naturally works with this (very reasonable) way of working, and does _not_ force people to drop information. In your world, you'd have to first save the old master with git branch work-branch and then you could do git checkout v2.6.12 to start on "master" anew. That's fair, but it's conceptually very wrong: it rquires you to name the _old_ thing, which to me just sounds very confusing indeed. You don't care about the old thing, it's the _new_ thing you care about. So at least to me it makes much more sense to say "ok, I'll start something new, and call it xyzzy", than "ok, I'll start something new, and I'll save the old under 'old'". The "old" thing might not even be anything you worked on (it might be something you just cloned from somebody else), so you giving it a name isn't very logical. In contrast, you're clearly doing something active with the new thing, so naming _that_ makes sense. Linus - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html