Re: [PATCH 1/4] gitweb: notes feature
- From
Johan Herland <johan@herland.net>
- Date
- Feb 7, 2010, 01:48 UTC
- Message-ID
- <201002070248.03855.johan@herland.net>
- In-Reply-To
- <201002070220.36897.jnareb@gmail.com>
On Sunday 07 February 2010, Jakub Narebski wrote:
Show 6 quoted lines
> On Sat, 6 Feb 2010, Giuseppe Bilotta wrote: > > On the other hand, as mentioned by Junio, this approach is not > > future-proof enough for any kind of fan-out schemes. > > On the third hand ;-P you propose below a trick to deal with fan-out > schemes, assuming that they use 2-character component breaking.
The current notes code (as it stands in 'pu') use only 2-character component breaking, and I don't see any other fanout mechanism being added anytime soon.
> Also, perhaps "git notes show" should acquire --batch / --batch-check > options, similar to git-cat-file's options of the same name?
I'd much rather have support for ^{notes} (or similar) in the rev-parse machinery, so that you could look up deadbeef's notes by passing "deadbeef^{notes}" to 'git cat-file --batch'.
Show 10 quoted lines
> > What worries me is that you're going to get fan-outs when there are > > LOTS of notes, and that's precisely the kind of situation where you > > _don't_ want to go through all the notes to pick the ones you're only > > interested in. > > Right. This method would be contrary to the goals of fan-out schemes... > well, we could use 'git ls-tree' without '-r' option, or simply > 'git cat-file --batch' to read trees (note that we would get raw, > unformatted tree, which is parseable with Perl, but it is not that easy), > and go down level-by-level.
IMHO, it's much better/nicer to re-use the notes code for parsing note trees. See above suggestion on deadbeef^{notes}.
Show 8 quoted lines
> > If we have a guarantee that the fan-outs follow a 2/[2/...] scheme, > > the open2 approach might still be the best way to go, by just trying > > not only namespace:xxxxx...xxx but also namespace:xx/xxxxx etc. > > Horrible, but could still be coalesced in a single call. It mgiht also > > be optimized to stop at the first successfull hit in a namespace. > > Nice trick! It seems like quite a good idea... but it would absolutely > require using 'git cat-file --batch' rather than one git-show per try.
Still, I'd still much rather use the notes.c code itself for doing this since it should always be the fastest (not to mention future-proof) way of making lookups in the notes tree.
...Johan
-- Johan Herland, <johan@herland.net> www.herland.net