[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: debian binary diff system ?! script.



On Wed, 18 Nov 1998, Joey Hess wrote:

> Kai Duebbert wrote:
> I haven't done any tests yet, but it seems to me this method is unnecessary.
> The reason it doesn't work ok on formal .debs is because they are
> compressed. Just doing:
> 
> ar x file.deb
> gunzip control.tar.gz
> gunzip data.tar.gz
> 
> And running xdelta on the tar files, should be sufficient. Can you let me
well, still the old topic. if you run xdelta against the .tar files, you
get an delta of the .tar files, not of every file that is in there. maybe
an example:

you have the package "sed_*" installed. all binaries, documentation etc.
is in its place (/usr/bin, /usr/doc, etc.). now you want to upgrade to the
newest version of sed, so you download the .diff.deb of sed for the newest
version. now when you want to install that diff, you see the difference
between both methods:

- if you applied xdelta against the .tar file, you get an data.tar.xd, so
how do you want to patch your existing binaries on your system now? you
need the old data.tar of the installed package to do that, but that would
be a huge waste of disk space, keeping every package you installed also as
deb file.

- if you applied xdelta against every single file, you get a data.tar.gz
with the structure e.g. /usr/bin/sed.xd, /usr/doc/sed/README.xd, etc. now
the install programm just has to take these deltas and patch them against
the existing binaries on your system, in our example patching /usr/bin/sed
with /usr/bin/sed.xd . you dont have to have an old version of the
deb-file on your system.

> know the set of packages you tested it on that got 40%?
sed_2.05-22.deb (26828 b) -> sed_3.02-1.deb (64530 b) -> diff (26828 b)
grep_2.1-8.deb (60070 b) -> grep_2.2-1.deb (61352 b) -> diff (31352 b)

size of diff compared to newest package: 

41,57 % (sed)
51,10 % (grep)



Kai.

---
Kai Duebbert
e-Mail: kad@gmx.de, duebbert@informatik.tu-muenchen.de
ICQ: 488417741,



Reply to: