Hi... While I was doing a 75 MB apt-get update last weekend I came up with the idea of a deb-diff format that only saves the actual changes between two versions. If you use woody/unstable and update at least every few weeks most of your updates actually contain very small changes, even if the deb files are large. So I have created a small file format called debiff (DEBian dIFF) that contains only the changes between two deb package versions. The file format is, like deb's format, based on ar and uses the xdelta(1) tool to create binary diffs between the control.tar and data.tar files contained in the \ original debs. The exact format description can be found at http://www.tjansen.de/debiff/debiff.txt To make it possible to modify the tars in a deb archive I patched dpkg-deb and added two new commands: --control-tarfile prints the control.tar (works like --fsys-tarfile) and --tar-build builds a new deb from two tars. I have written two quick&dirty perl scripts called debiff.pl and undebiff.pl that can create debiffs from two debs and create a new deb from an old original deb and the debiff file. You can find the scripts as well as the dpkg-deb patch here: http://www.tjansen.de/debiff Size of the last debs that I have downloaded and their debiffs: 741886 apache-common_1.3.12-2.1_i386.deb 810952 apache-common_1.3.12-2.2_i386.deb 187492 apache-common_1.3.12-2.1_1.3.12-2.2_i386.debiff (23% of deb size) 558036 apache-dev_1.3.12-2.1_i386.deb 559036 apache-dev_1.3.12-2.2_i386.deb 142348 apache-dev_1.3.12-2.1_1.3.12-2.2_i386.debiff (25% of deb size) 576772 apache-doc_1.3.12-2.1_all.deb 577120 apache-doc_1.3.12-2.2_all.deb 23626 apache-doc_1.3.12-2.1_1.3.12-2.2_all.debiff (4% of deb size) 577120 apache-doc_1.3.12-2.2_all.deb 618706 apache-doc_1.3.14-1_all.deb 216430 apache-doc_1.3.12-2.2_1.3.14-1_all.debiff (35% of deb size) 1018628 mutt_1.2.5-4_i386.deb 1012936 mutt_1.2.5-5_i386.deb 276190 mutt_1.2.5-4_1.2.5-5_i386.debiff (27% of deb size) I'd like to know whether there is a chance that debiff or similar format will be added to the dpkg/apt system. bye...
Attachment:
pgpFr6hnfLEv8.pgp
Description: PGP signature