3

So I was asking around the Mercurial development mailing list about binary diffing and patch handling and I got the following examples:

  • whole file approaches (classic diff, bsdiff, Mercurial's internal bdiff)
  • windowed streaming approaches (rsync, xdelta, libxdiff)

What does "windowed streaming" stand for in this context? (and in general)

gnat
  • 21,442
  • 29
  • 112
  • 288
dukeofgaming
  • 13,943
  • 6
  • 50
  • 77

1 Answers1

3

I believe that it's an ad-hoc expression to describe the algorithm used by rsync which is based primarily on a rolling hash. It is an extremely fast way to compute diffs, but works in blocks and doesn't handle smaller changes optimally.

Michael Borgwardt
  • 51,037
  • 13
  • 124
  • 176