Re: intent to package mrename
Bdale Garbee writes:
> The package meta-data explosion is a real problem, [...]
What about publishing diff's instead of reloading the entire file each time it
changes. This would resolve the bandwidth problem and wouldn't add a lot of
load on the server... The main problem I see here is backward-compatibility :
The Packages file needs to remain up-to-date. And another problem would be the
multiplication of diff files...
The diffs could be named according to the timestamp of the latest Package file
it can be applied to. So that the client (apt) knows what diffs to download
Since I'm not a native english speaker, I guess that my statements are quite
cryptic. So let me give you an example of how it could work :
First, you have your Package file. It was first release at time t. I'll call it
Then a change in the repository occurs and this file needs to be updated.
-> The file is updated (Package(t) is replaced by Package(t+1))
-> a diff is published that gives you the possibility to upgrade from t to
t+1. This patch is called "Package-diff-$(t).tgz".
If another change occurs. Package(t+1) is replaced by Package(t+2) and another
diff is published (Package-diff-$(t+1).tgz) which allows you to update from t+1
Then, when apt gets the Package file for the first time, it remembers the
timestamp of it.
On subsequent updates, it can check if it finds a diff file with a "t" smaller
than the time it got the Package file. If it does, then it grabs the diffs
from there. Otherwise it just grabs the entire file...
The number of available diffs should be limited. Older ones can be deleted
without problems with this "trick". If a client finds that it cannot upgrade
using the available diffs, it can still download the entire file...
Well, I hope that you get the idea. I'm not a long-time debian-user (as a
matter of fact, I'm running a SuSE on this machine and writing this mail
with KMail... But I promess : I'll put debian and learn to use pine !) so I may
be missing something here. But I'm just trying to help ;-)
Just my 2 cents...