Hello,
Just have Packages{,.gz,bz2} as we have now, plus files like Packages-2004-08-24.bz2 Packages-2004-08-23.bz2 Packages-2004-08-22.bz2 ... Packages-2004-08-14.bz2
...
The only problem that could arise is if the full Packages file is not up to sync (for example, a day old). To work around this, full Packages downloads should also download the latest Packages-`date -u -I`.bz2 files and use that package's date as a reference date.
To solve this, we could ask: If is the package 7 (maybe 3, 5, 15) days old? then download the full Package; something like this.
Another thought is for each the Packages.section have the history like Otavio said. At the first time, the user must download all sections; afther this, the user will download only the diffs in the scheme I said above. Or download all sections at first time (we meet all dependencies problems here) and continue to download only the sections we desire (using the Daniel's syntax for sources.list); every 7 days (maybe 3, 15, 30) we try to sync all sections again. Will this break dependencies? maybe but at least it try to reduce download bandwidth, processing on client side and have the not desired sections more or less up to date (I think this helps to solve packages dependencies) ;)
Whould be good any extra parameter for apt-get to force it to syncrhonize all sections, or any script to "change sources.list to default (all sections), update, change the sources.list again to sections marked early".
Ah, This is for advanced users, not me for exemple, they'll use this scheme for their own risk :)
I'm sorry for my insane thought and my bad english :( Best Regards, -- Alan Kelon http://kelon.uni.cc