All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Johan Herland <johan@herland.net>
Cc: git@vger.kernel.org, gitster@pobox.com
Subject: Re: [RFC/PATCHv8 08/10] fast-import: Proper notes tree manipulation using the notes API
Date: Thu, 26 Nov 2009 11:33:23 -0800	[thread overview]
Message-ID: <20091126193323.GU11919@spearce.org> (raw)
In-Reply-To: <200911261210.48138.johan@herland.net>

Johan Herland <johan@herland.net> wrote:
> BTW, while we're on the topic, this whole code is only present because I 
> assume it's not possible to edit the fast-import tree structure _while_ 
> traversing it. Is this assumption correct, or are there ways to get 
> around maintaining a separate edit list that is applied to the tree 
> structure afterwards?

IIRC you can actually edit the tree while you are walking through it.
You just have to watch out for the fact that a struct tree_content
can be reallocated (and thus moved in memory) if the entry_capacity
was too small for the new entry_count when inserting a new entry.

tree_content_set() handles this in its API by taking a struct
tree_entry* rather than a struct tree_content*.  This way if the
tree has to expand during the set and gets reallocated we can return
the new tree pointer to the caller through the struct tree_entry
tree field.

-- 
Shawn.

  reply	other threads:[~2009-11-26 19:33 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-20  1:39 [RFC/PATCHv8 00/10] git notes Johan Herland
2009-11-20  1:39 ` [RFC/PATCHv8 01/10] Notes API: get_commit_notes() -> format_note() + remove the commit restriction Johan Herland
2009-11-20  1:39 ` [RFC/PATCHv8 02/10] Notes API: init_notes(): Initialize the notes tree from the given notes ref Johan Herland
2009-11-20  1:39 ` [RFC/PATCHv8 03/10] Notes API: add_note(): Add note objects to the internal notes tree structure Johan Herland
2009-11-20  1:39 ` [RFC/PATCHv8 04/10] Notes API: get_note(): Return the note annotating the given object Johan Herland
2009-11-20  1:39 ` [RFC/PATCHv8 05/10] Notes API: for_each_note(): Traverse the entire notes tree with a callback Johan Herland
2009-11-20  1:39 ` [RFC/PATCHv8 06/10] Notes API: Allow multiple concurrent notes trees with new struct notes_tree Johan Herland
2009-11-20  1:39 ` [RFC/PATCHv8 07/10] Refactor notes concatenation into a flexible interface for combining notes Johan Herland
2009-11-20  1:39 ` [RFC/PATCHv8 08/10] fast-import: Proper notes tree manipulation using the notes API Johan Herland
2009-11-26  2:46   ` Shawn O. Pearce
2009-11-26 11:10     ` Johan Herland
2009-11-26 19:33       ` Shawn O. Pearce [this message]
2009-11-20  1:39 ` [RFC/PATCHv8 09/10] Rename t9301 to t9350, to make room for more fast-import tests Johan Herland
2009-11-20  1:39 ` [RFC/PATCHv8 10/10] Add more testcases to test fast-import of notes Johan Herland
2009-11-20  9:44 ` [RFC/PATCHv8 00/10] git notes Junio C Hamano
2009-11-20 10:14   ` Johan Herland
2009-11-20 10:28   ` Nanako Shiraishi
2009-11-20 10:36     ` Johannes Schindelin
2009-11-20 10:46     ` Junio C Hamano
2009-11-20 11:02       ` Junio C Hamano
2010-01-19 15:54       ` Alex Riesen
2010-01-19 18:10         ` Junio C Hamano
2010-01-20  3:29           ` Junio C Hamano
2010-01-20  8:17             ` Johannes Sixt
2010-01-20  8:34               ` Junio C Hamano
2010-01-20 10:06             ` Alex Riesen

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=20091126193323.GU11919@spearce.org \
    --to=spearce@spearce.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=johan@herland.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 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.