From: Jakub Narebski <jnareb@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Shawn O. Pearce" <spearce@spearce.org>,
Nicolas Pitre <nico@cam.org>, Wincent Colaiuta <win@wincent.com>,
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 11:21:19 -0700 (PDT) [thread overview]
Message-ID: <m3eiujk54b.fsf@localhost.localdomain> (raw)
In-Reply-To: <7vab57zmd8.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
> "Shawn O. Pearce" <spearce@spearce.org> writes:
>
> > You did say "uncommitted entry causes reflog append", so in Peff's
> > original example of "git add a; vi a; git add a", we should be
> > creating a reflog entry for that first added state, which is clearly
> > not a disagreement.
> >
> > FWIW, I think this is a great idea, but lack the time to code it
> > myself, otherwise I probably would start hacking on it right now.
>
> The devil's in the details. There are at least four things you would need
> to design before start hacking.
>
> (0) Do you want this to apply only to Porcelains, or do you want to use
> this for plumbing operations as well?
>
> (1) When would you "auto" write-tree? When you do "git add" or anything
> that adds new contents to the index? Or immediately before you do
> something destructive like "git reset"? Or perhaps both?
>
> (2) Enumerate the operations that falls into the category you decided in
> the above question. For example, "git apply --index" and "git apply
> --cached" would fall into the same category as "git add". If you
> cover plumbing, you would also need to cover "git update-index".
I guess that if we will not be able to resolve performance issues,
then such safety net would be of necessity limited only to highly
destructive commands that are more likely to destroy huge amount of
work if handled not carefully.
>
> (3) What should happen when you cannot write the index out as a tree? I
> think it is easier to make mistakes during a conflicted merge
> resolution than during a straight linear development of your own, and
> one of the cases that would benefit most would be that you have
> resolved a path to your satisfaction but then later you screw up
> while resolving some other paths, losing an earlier resolution.
Hmmm... because of (3), and because of performance concerns,
especially for the deep hierarchy, perhaps it would be better to use
here backup copy of index, or to save disk space just a delta to index.
On the other hand this would introduce yet another mechanism...
BTW., ad (3): how stash deals with conflicted merge? Hmmm... it doesn't
$ git stash
foo: needs merge
foo: needs merge
foo: unmerged (257cc5642cb1a054f08cc83f2d943e56fd3ebe99)
foo: unmerged (b7d6715e2df11b9c32b2341423273c6b3ad9ae8a)
foo: unmerged (5716ca5987cbf97d6bb54920bea6adde242d87e6)
fatal: git-write-tree: error building trees
Cannot save the current index state
--
Jakub Narebski
Poland
ShadeHawk on #git
next prev parent reply other threads:[~2009-05-20 18:21 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
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 [this message]
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=m3eiujk54b.fsf@localhost.localdomain \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jjensen@workspacewhiz.com \
--cc=nico@cam.org \
--cc=peff@peff.net \
--cc=spearce@spearce.org \
--cc=win@wincent.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).