gnu-arch-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu-arch-users] Fw: [Fwd: [BUG] revlib: old additions not hardlinke


From: Aaron Bentley
Subject: Re: [Gnu-arch-users] Fw: [Fwd: [BUG] revlib: old additions not hardlinked]
Date: Thu, 13 May 2004 15:59:27 -0400
User-agent: Mozilla Thunderbird 0.5 (X11/20040309)

James Blackwell wrote:
1. Create revision library, sparse and greedy
2. tla get ...-patch-101
3. tla get ...-patch-100

[ hardlinking is not performed in the library between 100 and 101]

The more I've sat back and though about this one, the more reasonable it
seems. All it really takes is teaching the library code to look to see
if there's any previous revision in the library, and if so, try
hardlinking against that.

Actually, I'm thinking for each revision in the library, we can check
1. Does $librev have a patchlog for $built?
2. Does $built have a patchlog for $librev?
(No matter how many revisions you have, two stats per revision is pretty cheap).

That's enough to show that the two revisions are related, though possibly only through merging. It should probably favour matches that are in the same version, because those will be more similar, but in a library, *any* similarities can be exploited.

That should help for the case when all you have is tla--devo--1.3--patch-10, and you add tla--devo--1.2--patch-100.

I can see a minor problem or two (which upon second thought probably
apply to building the library forward!)
that I bet that exist with forward

Building is stricter, since you have to follow ancestry, and also because I want to avoid the sort of security issues I mentioned on IRC. It's okay to build from any ancestor, because the author did that too, but anyone can make a descendant. To avoid building backwards from a falsified descendant, you have to restrict descendant matches to the same archive.

This is all blue-sky stuff at this point.

I think this is addressed by the backbuilder stuff, and thus there's no
need to create a bug report.


You sure? That doesn't sound like what AB (Bentley) is doing to me. I
think his work does something along the lines of "If I want to tla get this--that--1--patch-80, and there are cacherevs at patch-20 and
patch-90, then get the cacherev at 90, and reverse the patches between
patch-80 and patch-90 to get to patch-80"

The backbuilder will produce hardlinked revisions from descendants as well as ancestors.

It works best with library revisions at the moment, though there's plenty of room for extension. In general, seeking forward for cacherevs is tricky.

Aaron

--
Aaron Bentley
Director of Technology
Panometrics, Inc.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]