git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org, Junio C Hamano <junkio@cox.net>
Subject: Re: [PATCH] fast-import: use binary search in tree_content_remove
Date: Sun, 11 Mar 2007 16:19:12 -0400	[thread overview]
Message-ID: <20070311201912.GA12457@spearce.org> (raw)
In-Reply-To: <20070311165432.GA13555@coredump.intra.peff.net>

Jeff King <peff@peff.net> wrote:
> On Sun, Mar 11, 2007 at 12:34:13PM -0400, Jeff King wrote:
> 
> > > I'm plastering over the problem by resorting a tree strictly by
> > > name after it has been written out and the deleted entries have
> > > been filtered out.
> > I wonder if we could make this a bit cleaner by actually using the git
> > sort in the first place. I will take a look...
> 
> Hrm, it's not that hard to pass the mode around and use
> base_name_compare, but I don't think that's enough. Any time we turn an
> entry into a tree, we'll have to resort. I think your patch is simpler
> and less error prone.

Yes, but it gets worse.  We delete an entry by setting the mode to
0 in version 1, but leaving the entry in the tree so that the entry
will show up in version 0 during delta generation.

So what happens if we delete the tree entry, then modify it in
the same commit?  We can't find it if we are searching with mode
included.

Sidenote: I have the same sorting problems in jgit.  It all comes
down to how annoying the tree format is, in that entries are sorted
by both name and mode, but only name makes the entry be unique.

Right now I'm not sure how to resolve this, short of the bandaid
patch I put onto the end of your series.   :-(

-- 
Shawn.

  reply	other threads:[~2007-03-11 20:19 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <<20070310191515.GA3416@coredump.intra.peff.net>
2007-03-10 19:16 ` [PATCH 1/3] fast-import: grow tree storage more aggressively Jeff King
2007-03-10 19:21 ` [PATCH 2/3] fast-import: tree allocation cleanups Jeff King
2007-03-11  3:21   ` Shawn O. Pearce
2007-03-11 15:51     ` Jeff King
2007-03-11 15:59       ` Jeff King
2007-03-12 19:16       ` Shawn O. Pearce
2007-03-10 19:21 ` [PATCH 3/3] fast-import: improve efficiency of tree_content_set Jeff King
2007-03-10 19:23   ` Jeff King
2007-03-10 19:40     ` [PATCH] fast-import: use binary search in tree_content_remove Jeff King
2007-03-11  3:38       ` Shawn O. Pearce
2007-03-11 16:34         ` Jeff King
2007-03-11 16:54           ` Jeff King
2007-03-11 20:19             ` Shawn O. Pearce [this message]
2007-03-12 19:13           ` Shawn O. Pearce

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=20070311201912.GA12457@spearce.org \
    --to=spearce@spearce.org \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).