From: Thomas Rast <trast@inf.ethz.ch>
To: Thomas Gummerer <t.gummerer@gmail.com>
Cc: <git@vger.kernel.org>, <trast@student.ethz.ch>,
<mhagger@alum.mit.edu>, <gitster@pobox.com>, <pclouds@gmail.com>,
<robin.rosenberg@dewire.com>
Subject: Re: [PATCH 11/16] Read cache-tree in index-v5
Date: Fri, 3 Aug 2012 10:31:17 +0200 [thread overview]
Message-ID: <87haskbcmi.fsf@thomas.inf.ethz.ch> (raw)
In-Reply-To: <1343905326-23790-12-git-send-email-t.gummerer@gmail.com> (Thomas Gummerer's message of "Thu, 2 Aug 2012 13:02:01 +0200")
Thomas Gummerer <t.gummerer@gmail.com> writes:
> Since the cache-tree data is saved as part of the directory data,
> we have already read it, when we want to read the cache-tree. The
> cache-tree then only has to be converted from the directory data.
I think the first sentence is wrong. You have already read it at the
very beginning of reading the index format, when you parsed the
directory records, haven't you?
> The cache-tree isn't lexically sorted, but after the pathlen at
> each level, therefore the directories have to be reordered with
> respect to the ondisk layout.
I'm not a native speaker either, but I think this does't parse well.
Maybe
The cache-tree data is arranged in a tree, with the children sorted by
pathlen at each node. So we have to rebuild this format from the
on-disk directory list.
> + for (i = 0; i < subtree_nr; i++) {
> + struct cache_tree *sub;
> + struct cache_tree_sub *subtree;
> + char *buf, *name;
> +
> + name = "";
> + buf = strtok(down[i].de->pathname, "/");
man 3 strtok says
Be cautious when using these functions. If you do use them, note
that:
* These functions modify their first argument.
* These functions cannot be used on constant strings.
* The identity of the delimiting character is lost.
* The strtok() function uses a static buffer while parsing, so it's
not thread safe. Use strtok_r() if this matters to you.
I don't think the last point will be a problem, but what about modifying
the argument?
--
Thomas Rast
trast@{inf,student}.ethz.ch
next prev parent reply other threads:[~2012-08-03 8:31 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-02 11:01 [RFC 0/16] Introduce index file format version 5 Thomas Gummerer
2012-08-02 11:01 ` [PATCH 01/16] Modify cache_header to prepare for other index formats Thomas Gummerer
2012-08-02 12:15 ` Nguyen Thai Ngoc Duy
2012-08-02 11:01 ` [PATCH 02/16] Modify read functions " Thomas Gummerer
2012-08-02 11:01 ` [PATCH 03/16] Modify match_stat_basic " Thomas Gummerer
2012-08-02 12:20 ` Nguyen Thai Ngoc Duy
2012-08-02 14:16 ` Thomas Gummerer
2012-08-02 11:01 ` [PATCH 04/16] Modify write functions " Thomas Gummerer
2012-08-02 12:22 ` Nguyen Thai Ngoc Duy
2012-08-02 14:11 ` Thomas Gummerer
2012-08-02 11:01 ` [PATCH 05/16] t2104: Don't fail when index version is 5 Thomas Gummerer
2012-08-03 8:22 ` Thomas Rast
2012-08-03 12:42 ` Thomas Gummerer
2012-08-03 16:12 ` Junio C Hamano
2012-08-02 11:01 ` [PATCH 06/16] t3700: sleep for 1 second, to avoid interfering with the racy code Thomas Gummerer
2012-08-02 11:01 ` [PATCH 07/16] Add documentation of the index-v5 file format Thomas Gummerer
2012-08-02 11:01 ` [PATCH 08/16] Make in-memory format aware of stat_crc Thomas Gummerer
2012-08-02 11:01 ` [PATCH 09/16] Read index-v5 Thomas Gummerer
2012-08-02 12:45 ` Nguyen Thai Ngoc Duy
2012-08-02 14:04 ` Thomas Gummerer
2012-08-02 11:02 ` [PATCH 10/16] Read resolve-undo data Thomas Gummerer
2012-08-02 11:02 ` [PATCH 11/16] Read cache-tree in index-v5 Thomas Gummerer
2012-08-03 8:31 ` Thomas Rast [this message]
2012-08-03 12:41 ` Thomas Gummerer
2012-08-02 11:02 ` [PATCH 12/16] Write index-v5 Thomas Gummerer
2012-08-02 11:02 ` [PATCH 13/16] Write index-v5 cache-tree data Thomas Gummerer
2012-08-02 11:02 ` [PATCH 14/16] Write resolve-undo data for index-v5 Thomas Gummerer
2012-08-02 11:02 ` [PATCH 15/16] update-index.c: add a force-rewrite option Thomas Gummerer
2012-08-02 11:02 ` [PATCH 16/16] p0002-index.sh: add perf test for the index formats Thomas Gummerer
2012-08-02 12:50 ` Nguyen Thai Ngoc Duy
2012-08-02 13:56 ` Thomas Gummerer
2012-08-02 12:10 ` [RFC 0/16] Introduce index file format version 5 Nguyen Thai Ngoc Duy
2012-08-02 13:47 ` Thomas Gummerer
2012-08-02 13:53 ` Nguyen Thai Ngoc Duy
2012-08-03 3:16 ` Nguyen Thai Ngoc Duy
2012-08-03 12:46 ` Thomas Gummerer
2012-08-03 9:13 ` Thomas Rast
2012-08-03 12:34 ` Thomas Gummerer
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=87haskbcmi.fsf@thomas.inf.ethz.ch \
--to=trast@inf.ethz.ch \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=mhagger@alum.mit.edu \
--cc=pclouds@gmail.com \
--cc=robin.rosenberg@dewire.com \
--cc=t.gummerer@gmail.com \
--cc=trast@student.ethz.ch \
/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.