Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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)

share|improve this question
up vote 3 down vote accepted

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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.