Linus Torvalds writes: > So we could generate a "pack of references", but then any modifications > would be done with the current loose "file objects" approach, and just > have the filesystem override the pack-files. The problem then actually > becomes one of _deleting_ branches, because then we'd have to add a > "negative branch" loose object. Ugly. Could we do a cache of the refs that stores the stat information for each of the files under .git/refs plus the sha1 that the ref points to? In other words this cache would do for the refs what the index does for the working directory. Reading all the refs would mean we still had to stat each of the files, but that's much quicker than reading them in the cold-cache case. In the common case when most of the stat information matches, we don't have to read the file because we have the sha1 that the file contains right there in the cache. Ideally we would have two sha1 values in the cache - the sha1 in the file, and if that is the ID of a tag object, we would also put the sha1 of the commit that the tag points to in the cache. Paul. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html