git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ping Yin <pkufranky@gmail.com>
To: Nicolas Pitre <nico@cam.org>
Cc: Jeff King <peff@peff.net>,
	Joshua Jensen <jjensen@workspacewhiz.com>,
	git@vger.kernel.org
Subject: Re: Reverting an uncommitted revert
Date: Wed, 20 May 2009 12:58:05 +0800	[thread overview]
Message-ID: <46dff0320905192158k340ece90xd88af53792056b67@mail.gmail.com> (raw)
In-Reply-To: <alpine.LFD.2.00.0905192328310.3906@xanadu.home>

On Wed, May 20, 2009 at 11:35 AM, Nicolas Pitre <nico@cam.org> wrote:
> On Tue, 19 May 2009, Jeff King wrote:
>
>> On Tue, May 19, 2009 at 11:10:14PM -0400, Nicolas Pitre wrote:
>>
>> > > So here's the idea: What if Git, upon a revert change (or git reset --hard
>> > > HEAD), "committed" the changes to be reverted and then did the revert with a
>> > > 'git reset --hard HEAD^'?  The reverted files would be disconnected from a
>> > > branch, but they would be available in the reflog to retrieve.
>> >
>> > I think there is indeed some value in having a commit of the work
>> > directory dirty state automatically made before this state is discarded,
>>
>> Related to this, I have wondered if it might be useful to have an "index
>> reflog". If I do something like this:
>>
>>   $ git add foo
>>   $ hack hack hack
>>   $ git add foo
>>
>> Then the first added state of "foo" is available in the object database,
>> but it is not connected to the name "foo" in any way, which makes it
>> much harder to find. If we had a reflog pointing to trees representing
>> the index state after each change, then it would be simple (you could
>> look at "INDEX@{1}:foo" or similar).
>>
>> I don't know if the performance is an issue. We are writing an extra
>> tree every time we touch the index, but in many cases you are already
>> writing a blob.
>
> Well... Actually I think having a reflog dedicated to discarded state
> would probably be a better idea. And...
>

Agree. The issues about losing changes due to wrong operation have
raised many times in the list, such as

git add .
git reset --hard

With reflog for discarded changes,  this can be easily recovered.

  parent reply	other threads:[~2009-05-20  4:58 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-20  2:34 Reverting an uncommitted revert Joshua Jensen
2009-05-20  3:10 ` Nicolas Pitre
2009-05-20  3:21   ` Jeff King
2009-05-20  3:35     ` Nicolas Pitre
2009-05-20  3:38       ` Jeff King
2009-05-20  4:58       ` Ping Yin [this message]
2009-05-20  9:15       ` Wincent Colaiuta
2009-05-20 10:16         ` Jakub Narebski
2009-05-20 12:53         ` Nicolas Pitre
2009-05-20 14:17           ` Shawn O. Pearce
2009-05-20 16:55             ` Eric Raible
2009-05-20 17:59             ` Junio C Hamano
2009-05-20 18:19               ` Nicolas Pitre
2009-05-20 18:25                 ` Nicolas Pitre
2009-05-20 18:57                 ` Shawn O. Pearce
2009-05-21  6:16                 ` Junio C Hamano
2009-05-20 18:21               ` Jakub Narebski
2009-05-20 15:23           ` Wincent Colaiuta
2009-05-20 15:47             ` Nicolas Pitre
2009-05-20 16:13               ` Sverre Rabbelier
2009-05-20 16:58                 ` Jeff King
2009-05-20 18:04                   ` Nicolas Pitre
2009-05-20 18:08                     ` Sverre Rabbelier
2009-05-21  3:47                     ` Jeff King
2009-05-20 17:50     ` Junio C Hamano
2009-05-20 18:27       ` [PATCH] write-tree --ignore-cache-tree Junio C Hamano
2009-05-21  0:40         ` [PATCH 1/2] cache-tree.c::cache_tree_find(): simplify inernal API Junio C Hamano
2009-05-21  0:44         ` [PATCH 2/2] Optimize "diff-index --cached" using cache-tree Junio C Hamano

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=46dff0320905192158k340ece90xd88af53792056b67@mail.gmail.com \
    --to=pkufranky@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jjensen@workspacewhiz.com \
    --cc=nico@cam.org \
    --cc=peff@peff.net \
    /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).