Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] Re: auto-update engine

From: greggirwin:mindspring at: 15-Feb-2003 14:07

Hi SunandaDH, Sac> What the rest of us need (possibly -- see end) is a process that will compare Sac> Version 1 source with Version 2 source and ship a delta that consists only of Sac> the edit instructions to change V1 into V2. As Gabriele said, I've tackled this one, as has Volker. I haven't taken the time to analyze Volker's algorithm in any depth, so I'll let him speak to that if he wants. I implemented a DIFF system using the well-known longest-common-subsequence (LCS) algorithm at its core. It produces a block of commands that you DO against the original version to create the new version. It all works, but has some things I'd like to improve - which is why I haven't released it beyond a couple IOS servers for feedback. The biggest problem is that it's SLOOOOOW to create DIFFs. For small files, diff'ing on lines, it's probably fast enough, but not fast enough for byte DIFFs on EXEs. The way it works, you should be able to diff on any lexical unit you want (e.g. functions, blocks, etc.), but that's one of the things I need to delve into more. The big advantage there is that going to larger units means it will run faster because it's the number of items it has to compare that kills the speed. To be really useful, though, you need a good storage/repository system and that's something I haven't spent any time on yet. -- Gregg