All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Parkins <andyparkins@gmail.com>
To: git@vger.kernel.org
Subject: Re: Restore a single file in the index back to HEAD
Date: Thu, 2 Nov 2006 09:44:10 +0100	[thread overview]
Message-ID: <200611020844.12357.andyparkins@gmail.com> (raw)
In-Reply-To: <7vejsmzqh6.fsf@assigned-by-dhcp.cox.net>

On Wednesday 2006 November 01 23:39, Junio C Hamano wrote:

> That is not something other git commands with pathspec does.
> Path limiters tell command to "do your thing only for paths that
> match these patterns, while you usually handle all paths; your
> behaviour shall otherwise not be any different in other aspects
> between the case you got no limiter and the case you got _all_
> paths as limiters."  So I do not think making path-only mode and
> pathless mode behave differently is a good idea from the UI
> point of view.

Surely if you move HEAD you have implicitly affected every path?  In which 
case what effect did the path limiter have?

Given

 x --- y --- (z--Z)

With z being the index and Z being the working directory - both uncommitted.  
The file foo will be different in x, y, z, and Z.  We decide that z-foo is 
incorrect and that it was right in x; however, there are changes in Z-foo 
that we want to keep.

 git-reset --mixed HEAD^ foo

This would reset z-foo (because --mixed) to its state in HEAD^; i.e. x-foo.  
If HEAD changes as well then all the rest of y will be lost - not just y-foo.  
Remember the original problem was a way of selectively manipulating the index 
without altering the working directory.

I'm perfectly happy if git-reset is not the place to do this, because 
git-reset is only allowed to fiddle with HEAD/index; I moved to git-reset 
only because you mentioned that "reset historically is _not_ HEAD 
manipulator".

I think we're back to square one: there is no appropriate command to take on 
this functionality:

 git-ls-tree HEAD^ foo | git-update-index --index-info

 * git-reset can't have it because it makes no sense to alter HEAD /and/
   revert a file.  It also occurs to me that "git-reset --hard HEAD^ foo"
   (using my suggested git-reset implementation) would be redundant anyway
   because it's the same as "git-checkout -f HEAD^ foo".
 * git-checkout can't have it because it doesn't target the index.
 * git-update-index can't have it because it is plumbing and doesn't know
   about commits, only about objects.

I'm stumped now.


Andy

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

  reply	other threads:[~2006-11-02  8:44 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-26 15:41 Restore a single file in the index back to HEAD Andy Parkins
2006-10-26 15:42 ` Alex Riesen
2006-10-27  7:27   ` Andy Parkins
2006-10-27  7:38     ` Shawn Pearce
2006-10-27  8:01       ` Andy Parkins
2006-10-27  8:08       ` Andreas Ericsson
2006-10-27  8:15         ` Shawn Pearce
2006-10-27  9:45           ` Alex Riesen
2006-10-27  9:50             ` Andreas Ericsson
2006-10-27 10:02               ` Junio C Hamano
2006-10-27 17:45                 ` Luben Tuikov
2006-11-01  7:58                 ` Nguyen Thai Ngoc Duy
2006-11-01  8:07                   ` Junio C Hamano
2006-11-01  8:34                     ` Junio C Hamano
2006-11-01  9:09                       ` Nguyen Thai Ngoc Duy
2006-11-01 11:22                         ` Jakub Narebski
2006-11-01  9:38                       ` Jakub Narebski
2006-11-01  8:39                     ` Andy Parkins
2006-11-01  8:56                       ` Junio C Hamano
2006-11-01  9:53                         ` Andy Parkins
2006-11-01 18:28                           ` Junio C Hamano
2006-11-01 20:29                             ` Andy Parkins
2006-11-01 20:49                               ` Junio C Hamano
2006-11-01 21:18                                 ` Andy Parkins
2006-11-01 22:08                                   ` Junio C Hamano
2006-11-01 23:09                                     ` Andy Parkins
2006-11-01 23:39                                       ` Junio C Hamano
2006-11-02  8:44                                         ` Andy Parkins [this message]
2006-11-01 22:27                                 ` Robin Rosenberg
2006-11-02 12:47                                 ` Salikh Zakirov
2006-10-27  9:03 ` [PATCH] Added description for inverting git-update-index using --index-info Andy Parkins

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200611020844.12357.andyparkins@gmail.com \
    --to=andyparkins@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.