Re: debian binary diff system ?! script.
On Thu, Nov 19, 1998 at 04:35:34PM +0100, Kai Duebbert wrote:
> 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:
[ can apply in situ argument ]
Also, doing individual file method seems to make the delta a fair
bit smaller. Remember though about permissions etc. Maybe we ought
to generate a script which touch's, chown's, and chmod's the files.
> > 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)
Here are some more results, using that script:-
old e2fsprogs_1.10-17.deb (151266)
new n-n/e2fsprogs_1.12-2.deb (163962)
old kbd_0.95-16.deb (468406)
new n-n/kbd_0.96a-6.deb (114006)
old libc6_2.0.7t-1.deb (580872)
new n-n/libc6_2.0.7u-2.deb (608906)
old makedev_1.6-32.deb (35020)
new n-n/makedev_2.3.1-3.deb (15730)
old modutils_2.1.85-11.deb (116042)
new n-n/modutils_2.1.121-5.deb (122248)
old mount_2.7l-5.deb (53444)
new n-n/mount_2.8a-1.1.deb (54930)
old ncurses-base_1.9.9g-8.8.deb (6702)
new n-n/ncurses-base_4.2-2.deb (13754)
old ncurses-bin_1.9.9g-8.8.deb (60982)
new n-n/ncurses-bin_4.2-2.deb (66856)
old timezones_2.0.7t-1.deb (261268)
new n-n/timezones_2.0.7u-2.deb (266124)
These were hamm->slink (ish) changes, using the same script.
The only bad result seems to be makedev, but its not too big
Also, patching the script as attached does significantly reduce
the workload needed, and reduces the diff size for at least
timezones (to 114828).
Tom Lees <email@example.com> <firstname.lastname@example.org> http://www.lpsg.demon.co.uk/
PGP Key: finger email@example.com, http://www.lpsg.demon.co.uk/pgpkeys.asc.
--- make-diff.old Thu Nov 19 22:46:27 1998
+++ make-diff Thu Nov 19 22:47:42 1998
@@ -65,13 +65,17 @@
COMPARE=$DIR_OLD/`echo $i | cut -d '/' -f 2-`
COMPARE_DIFF=$DIR_DIFF/`echo $i | cut -d '/' -f 2-`
- echo "found a FILE ($i) comparing to ($COMPARE)" #DEBUG
- if [ -f $COMPARE ]; then
- echo "XDELTA $i $COMPARE $COMPARE_DIFF"
- xdelta delta -9 $i $COMPARE $COMPARE_DIFF.xd
+ if cmp -s $COMPARE $i; then
+ echo $i not changed, skipping diff
- echo "comparing file against $COMPARE"
- cp $i $COMPARE_DIFF
+ echo "found a FILE ($i) comparing to ($COMPARE)" #DEBUG
+ if [ -f $COMPARE ]; then
+ echo "XDELTA $i $COMPARE $COMPARE_DIFF"
+ xdelta delta -9 $i $COMPARE $COMPARE_DIFF.xd
+ echo "comparing file against $COMPARE"
+ cp $i $COMPARE_DIFF