Re: (visual) diff for large files
2008/5/2 michael <cs@networkingnewsletter.org.uk>:
> On Thu, 2008-05-01 at 13:21 -0500, Sergio Cuéllar Valdés wrote:
> > 2008/5/1 michael <cs@networkingnewsletter.org.uk>:
> > > At work we've been discussing (below) 'diff' running out of memory. I've
> > > tried to see if 'rdiff' can help (but no idea how to back out the
> > > differences from the "delta" o/p file). I've seen that freeBSD has a
> > > diff utility (eg 2bsd-diff) that does NOT read in all of the files in
> > > one go and thus has less problems with 'memory exhausted' but I cannot
> > > find a Debian equivalent. Therefore,
> > >
> > > does anybody know of a freeBSD->Debian ports site?
> > >
> > > I did try downloading the 2.11bsd-diff source but it doesn't build on my
> > > system (unsurprisingly!)
Hello,
I compiled diff. I used gcc-3.4. I had to modify diffdir.c. These are
the changes:
@@ -18,6 +18,7 @@ struct dir {
short d_reclen;
short d_namlen;
char *d_entry;
+ char *d_name;
};
struct dir *setupdir();
@@ -172,7 +173,7 @@ setupdir(cp)
char *cp;
{
register struct dir *dp = 0, *ep;
- register struct direct *rp;
+ register struct dir *rp;
register int nitems, n;
DIR *dirp;
Go to the directory of diff (bin/diff) and $ CC=/usr/bin/gcc-3.4 make
There are some warnings, but you will get 2 ELF binaries: diff and diffh.
I used the compiled diff to see the differences of the file diffdir.c:
$ ./diff /tmp/orig/bin/diff/diffdir.c /tmp/modified/bin/diff/diffdir.c
20a21
> char *d_name;
175c176
< register struct direct *rp;
---
> register struct dir *rp;
hope it will help you.
Best regards,
Sergio Cuellar
--
"Meine Hoffnung soll mich leiten
Durch die Tage ohne Dich
Und die Liebe soll mich tragen
Wenn der Schmerz die Hoffnung bricht"
Reply to: