Subject: Re: Restore a single file in the index back to HEAD

From: Andy Parkins <[email-masked]>
Date: Wed, 1 Nov 2006 10:53:46 +0100

On Wednesday 2006 November 01 08:56, Junio C Hamano wrote:

> update-index is a plumbing that is about updating index (hence
> its name) and should not care what the HEAD is, and it does not
> even have to have _any_ head to do its work, so in that sense,
> "update-index --reset" is conceptually a layering violation.

Of course; I was really only reporting that git-update-index was the place I 
(as a newbie) went looking for this function.

However, from a UI point of view updating the index from HEAD is just as much 
of an update to the index as updating it from the working directory.  When I 
went looking, I had no idea that update-index was plumbing and not porcelain.  
In fact, as it's a regularly used command (git-update-index; git-commit) I'm 
surprised it's classed as plumbing.

> But these two commands are meant to be used as building blocks,
> so if there are more suitable UI commands at the Porcelain layer
> to implement what we want to do without introducing more special
> cases to these plumbing commands, I would rather not touch them.

As I mentioned in my original email, I was wishing for 

 git-reset --mixed HEAD oops/file1

But of course, that doesn't make any sense in the context of of git-reset, 
which is really only a HEAD manipulator with extras.

Andy
-- 
Dr Andy Parkins, M Eng (hons), MIEE