Re: Git's database structure
- From
Mike Hommey <mh@glandium.org>
- Date
- Sep 5, 2007, 17:39 UTC
- Message-ID
- <20070905173912.GB3396@glandium.org>
- In-Reply-To
- <9e4733910709050912i57ed7137o6abb02ee741d394b@mail.gmail.com>
On Wed, Sep 05, 2007 at 12:12:28PM -0400, Jon Smirl <jonsmirl@gmail.com> wrote:
Show 24 quoted lines
> On 9/5/07, Julian Phillips <julian@quantumfyre.co.uk> wrote: > > On Wed, 5 Sep 2007, Jon Smirl wrote: > > > > > On 9/5/07, Andreas Ericsson <ae@op5.se> wrote: > > >> Jon Smirl wrote: > > >>> > > >>> The path name field needs to be moved back into the blobs to support > > >>> alternative indexes. For example I want an index on the Signed-off-by > > >>> field. I use this index to give me the SHAs for the blobs > > >>> Signed-off-by a particular person. In the current design I have no way > > >>> of recovering the path name for these blobs other than a brute force > > >>> search following every path looking for the right SHA. > > >>> > > >> > > >> Ah, there we go. A use-case at last :) > > > > But not a brilliant one. You sign off on commits not blobs. So you go > > from the sign-off to paths, then to blobs. There is no need to go from > > blob to path unless you deliberately introduce such a need. > > Use blame for an example. Blame has to crawl every commit to see if it > touched the file. It keeps doing this until it figures out the last > author for every line in the file. Worse case blame has to crawl every > commit in the data store.
And why exactly would you need to change blobs to contain path for blame to be faster ?
Or more generally, what, in the current way of git doing things, prevents you from adding an index to $THE_DATA_YOU_LIKE, exactly ?
>From the very few use cases you've given, I see nothing preventing to
create an additional index from the data git currently uses.
Mike