Re: [PATCH] cmd_reset: don't trash uncommitted changes unless told to
- From
Petr Baudis <pasky@suse.cz>
- Date
- Jun 25, 2008, 22:44 UTC
- Message-ID
- <20080625224428.GB12567@machine.or.cz>
- In-Reply-To
- <20080625203822.GA7827@mit.edu>
On Wed, Jun 25, 2008 at 04:38:22PM -0400, Theodore Tso wrote:
Show 18 quoted lines
> On Wed, Jun 25, 2008 at 04:04:47PM -0400, Avery Pennarun wrote: > > How about making "git checkout" default to HEAD if no revision is > > supplied? There's precedent for this in, say, git-diff (and I think a > > few others). > > > > Incidentally, "checkout <filename>" was also the way to do a revert > > operation in CVS. And the way to switch branches, too, iirc. So git > > isn't being too unusual here. That said, the commands were > > deliberately renamed in svn because CVS was considered largely insane. > > The one thing I would worry about is the potential ambiguity if you do > something like "git checkout FOOBAR", and FOOBAR was both a branch > name as well as a file name. How should it be interpreted? I'd argue > the real problem was we conflated two distinct operations: "switching > to a new branch", and "reverting a file" to the same name, checkout. > > Hence the suggestion to add a new command, "git revert-file", where > there would be no ambiguity.
Just to chime in, this reminds me of Cogito - it had cg-switch for switching branches (like git checkout) and cg-restore for restoring files in working copy (like git checkout, too; but you would pass -f if you wanted to overwrite existing copy).
(Though, Cogito didn't quite get it right either since it tried to overload cg-switch with the git branch functionality of creating new branches. I still didn't quite come in terms with any UI model of the branches I know about.)
-- Petr "Pasky" Baudis The last good thing written in C++ was the Pachelbel Canon. -- J. Olson