On Wed, 17 Feb 2010 14:21:01 +1300, martin f krafft <madduck at madduck.net> wrote: > What I am wondering is if (explicit) tags couldn't be represented as > tree-objects with this. > > evenless-link ? link a message object with a tree object > evenless?unlink ? unlink a message object from tree object > [replaces evenless-unlink]
I think it could get expensive for tags with lots of messages. With my fast-import script, doing the commit (that referenced... umm.. 800,000+ objects took a *very* long time). As far as I understand it, the tree object is stored in full and space is only reclaimed during repack (due to delta compression). So if you, say, had the entire history of a high volume list such as linux-kernel, adding messages could get rather expensive if you auto-tagged (or autotagged messages with patches or whatever). > messages would then be deleted whenever using git-gc. > > No idea how this would sync if we don't keep ancestry. Otoh, it > would probably not be very expensive to do just that. If we keep ancestry though, we are reusing existing working code for backup (git-pull :) Keep in mind that with my tests, the Maildir in git is about a quarter to a fifth of the size of it in Maildir... so a bit of extra usage per message isn't as dramatic as it may sound. > Is it possible to find out all trees that reference a given object > with Git in constant or sub-linear time? I don't think so.... but I'm not sure. -- Stewart Smith