Linked by Thom Holwerda on Thu 16th Jul 2009 21:44 UTC
Thread beginning with comment 373815
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.





Member since:
2006-01-25
server:
diff = bsdiff(original, update)
transmit diff
client:
receive diff
update = bspatch(original, diff)
(The server would pre-compute diff so that it could be transmitted immediately)
Courgette transforms the program into the primitive assembly language and does the diffing at the assembly level:
server:
asm_old = disassemble(original)
asm_new = disassemble(update)
asm_new_adjusted = adjust(asm_new, asm_old)
asm_diff = bsdiff(asm_old, asm_new_adjusted)
transmit asm_diff
client:
receive asm_diff
asm_old = disassemble(original)
asm_new_adjusted = bspatch(asm_old, asm_diff)
update = assemble(asm_new_adjusted)
rsync does essentially the same thing as bsdiff.