Op zaterdag 2 december 2006 01:11, schreef Andreas Hanke:
No, that's not what was asked for.
Just as an example for repomd:
You have a repository with package A-1 and B-1. createrepo writes the filelists of both packages into filelists.xml.
Now A gets upgraded to A-1.1. Which is a great thing, because the package manager has to download the whole filelists.xml again, even though package B has not been touched at all.
What you describe covers only the fact that the metadata aren't downloaded again if nothing changed. But if even the slightest thing changed, everything is downloaded from scratch, even the parts that have not been changed.
Solutions:
- Use a smarter protocol that can "fix" this design problem, e.g. rsync instead of http/ftp.
- Think about a smarter metadata format. SUSE had one (the old plain-text patchinfos) and threw it away in favour of repomd.
- Extend the repomd format to suck less, e.g. by splitting filelists.xml into filelists-dec06.xml, filelists-jan07.xml, filelists-feb07.xml so that at least the unchanged filelists from previous months aren't downloaded over and over again.
That's why I proposed to md5summing the filelist. A package with multi versions has often the same files. Especially in the released distribution as only security or important bug fixes are applied to packages. That means that the filelist of packages A-1.1 and A-1.2 is the same. It also means that the md5sum of the filelist of those 2 packages are the same. This could even be valid for multiple version of distribution. So when the client has a database with the md5sum of the filelist as key and as "payload" the filelist, the client can easily determine the filelist belonging to a package. How this should work in details, I have not worked out, but it might save a lot of bandwith. -- Richard Bos Without a home the journey is endless --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org