>>>>> "LT" == Linus Torvalds <[EMAIL PROTECTED]> writes:

LT> However, I really don't think it's a very useful option in
LT> the first place.  Any dumb web-based thing that depends on
LT> "--whole-trees" would suck horribly.

I agree with these two sentences now.

However it does not automatically mean that the avenue I have
been pursuing would not work; the server side preparation needs
to be a bit more careful than what I sent, which unconditionally
runs "prune-packed".  It instead should leave the files that
"--whole-trees" would have packed as plain SHA1 files, so that
the bulk is obtained by statically generated packs and the rest
can be handled in the commit-chain walker as before.

So, the server side preparation needs be tweaked to do something

  (1) Repack when necessary (no --whole-trees).

  (2) For each .git/objects/pack/ pack, make a list of trees and
      blobs that are missing from the commits that contained in
      the same pack.

  (3) Run "prune-packed" but do not prune objects on the list
      produced in the previous step.

  (4) Take inventory, rev-cache, and pack, as done by the posted

The determination of (1) is a bit problematic since "when
necessary" is not "when .git/objects/?? grew too big" anymore,
due to the fact that (3) would deliberately leave plain SHA1
files there.

A completely different way would be to prepare packs of objects
based on age, and create an inventory of such packs.  Have
client download such an inventory, which essentially says "if
you have this commit, then slurp these packs and you are done."

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to