git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Duy Nguyen <pclouds@gmail.com>, git@vger.kernel.org
Subject: Re: [PATCH v2] unpack-trees: do not abort when overwriting an existing file with the same content
Date: Tue, 22 Jan 2013 15:19:29 -0500	[thread overview]
Message-ID: <20130122201929.GB23521@sigill.intra.peff.net> (raw)
In-Reply-To: <7vwqv6c7oe.fsf@alter.siamese.dyndns.org>

On Mon, Jan 21, 2013 at 05:45:05PM -0800, Junio C Hamano wrote:

> Duy Nguyen <pclouds@gmail.com> writes:
> 
> > On Tue, Jan 22, 2013 at 6:15 AM, Jeff King <peff@peff.net> wrote:
> >> Can you elaborate on when this code is triggered?
> >>
> >> In the general case, shouldn't we already know the sha1 of what's on
> >> disk in the index, and be able to just compare the hashes? And if we
> >> don't, because the entry is start-dirty, should we be updating it
> >> (possibly earlier, so we do not even get into the "need to write" code
> >> path) instead of doing this ad-hoc byte comparison?
> 
> If the index knows what is in the working tree, I think I agree.

Right. I was wondering why it didn't (and if it doesn't, why we are not
saving the information there).

But I think I was letting my inaccurate mental model of the index get in
the way. I tend to think of the stat information as "if the file matches
this stat info, then it has sha1 X". But that is not true. The sha1 we
store is the actual index entry, and if it does not match what is in the
working tree, we do not know or store the sha1 of what is in the working
tree. We cannot just "refresh" that value and compare it, which is what
I was implying.

So I think I was just confused. That is what I get for not actually
doing low-level index stuff enough.

> > git reset HEAD~10
> > # blah that was a mistake, undo it
> > git checkout HEAD@{1}

It seems like

  git reset HEAD@{1}

would be the correct undo, as the original never touched the working
tree.

-Peff

      parent reply	other threads:[~2013-01-22 20:19 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-19 11:24 [PATCH] unpack-trees: do not abort when overwriting an existing file with the same content Nguyễn Thái Ngọc Duy
2013-01-20 18:35 ` Junio C Hamano
2013-01-21  1:35   ` Duy Nguyen
2013-01-21 11:40 ` [PATCH v2] " Nguyễn Thái Ngọc Duy
2013-01-21 23:15   ` Jeff King
2013-01-22  0:59     ` Duy Nguyen
2013-01-22  1:45       ` Junio C Hamano
2013-01-22  1:55         ` Duy Nguyen
2013-01-22 20:19         ` Jeff King [this message]

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=20130122201929.GB23521@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=pclouds@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).