From: Jeff King Date: Mon, 26 Oct 2009 22:14:24 GMT Subject: Re: [PATCH 3/3] git checkout --nodwim Message-ID: <20091026221424.GA28184@sigio.peff.net> In-Reply-To: <32541b130910261501n32046cc5s12283a8e3981d04e@mail.gmail.com> On Mon, Oct 26, 2009 at 06:01:29PM -0400, Avery Pennarun wrote: > > It's git-update-ref. > > That would be similar to git commit, not git checkout, right? Oh > wait, I see the confusion: git checkout does two things. It switches > branches, and it checks out files from the index into the work tree. > I meant the latter meaning. Er, sorry, yes. It should be "git symbolic-ref", of course, to change HEAD, and then probably read-tree and checkout-index. I was just not thinking when I wrote the other message (hopefully I am doing so now). > > Consider "git commit", for example. Does anyone > > actually script around "write-tree" and "commit-tree" these days, or do > > they just script around "git commit"? > > Oh, I use those all the time. They're awesome! It allows you to > create commits without having a working tree, which lets me do very > interesting tricks. git-subtree uses this heavily. > > I'm probably a weirdo, though. OK, I should have phrased my statement differently (see, I told you I wasn't thinking). Yes, there are reasons to script around low-level building blocks, when you don't want the assumptions associated with the higher level. But I'm sure there are tons of scripts that munge some files in a worktree, followed by "git add -A; git commit -m 'automagic update'". And in that case, nobody would script around "commit-tree" because it's a lot more work. -Peff