Am 18.07.2005 um 06:00 schrieb Doug Way:
On Jul 17, 2005, at 4:43 PM, Bert Freudenberg wrote:
Am 17.07.2005 um 00:48 schrieb Doug Way:
- The .mcd file does not exist. How is this intended to work?
A. Is the SqueakSource server supposed to generate the .mcd file on the fly, or maybe upon the saving of a new version? (Makes sense, that's a lot less bandwidth for these big packages.) B. Should the MCConfig code in the image not be trying to download .mcd files? C. Do we need to be saving .mcd files and not .mcz when we save new versions to the repository?
(I'm pretty sure the answer isn't C, that would be dumb. I'm guessing A.)
Yes it's A, a diff is generated on the fly when it is requested first, and then cached. Building a diff for version n against the previous n-1 versions would be O(n^2), and we might never need all. So it's only built on demand.
Makes sense.
So, the problem is that the squeaksource repository at sqf.org is not generating any .mcd files for whatever reason. It looks like this .mcd generation is a relatively new feature... is it something that was just added in the impara.de version of squeaksource?
Yes, I implemented the mcd stuff after we installed the Monticello- based update stream for Tweak. It became unbearably slow, updating sometimes took 10 minutes. While downloading the packages was actually quite fast (we're all on broadband), the diffing against the in-image version was taking most of the time. So the actual time saver is that the diff is loaded almost like a changeset, if the in- image version is unmodified and the diff's base version matches it.
So it's actually two parts, one on the client side (the optimization for loading mcds without diffing) and the server side (building the right mcd to match the in-image version).
I see that http://squeaksource.com at berne does not seem to have the .mcd capability either, although at least it returns a "not found" error rather than hanging.
Actually, it's pretty easy to plug the URLs into a browser to test the various squeaksource repositories, since it's just a simple HTTP get. These links show how the various repositories behave:
works: http://source.impara.de/mc/Monticello-bf.260.mcz http://source.impara.de/mc/Monticello-bf.261.mcz http://source.impara.de/mc/Monticello-bf.261%28bf.260%29.mcd
works: http://source.squeakfoundation.org/39a/Kernel-dew.1.mcz http://source.squeakfoundation.org/39a/Kernel-md.5.mcz
doesn't work: (hangs!) http://source.squeakfoundation.org/39a/Kernel-md.5%28dew.1%29.mcd
works: http://squeaksource.com/Monticello/Monticello-avi.231.mcz http://squeaksource.com/Monticello/Monticello-avi.232.mcz
doesn't work: ("not found" error) http://squeaksource.com/Monticello/Monticello-avi.232%28avi.231%29.mcd
Did you compare the package versions I sent around?
- Bert -