Как система ревизионного контроля восстанавливает ревизию?
Мой вопрос носит более общий характер, чем заявлено в заголовке.
Я знаю, что исходный контроль версий хранит информацию только о различиях. Как я понимаю, так же, как и Википедия, и github.
Но все они имеют возможность показать весь файл с определенной ревизией. Они постепенно восстанавливают это от первой ревизии до определенной?
И еще один вопрос. Если они хранят только различия, то, как они показывают их в пользовательском интерфейсе с контекстом (немного текста до и после изменений).
EDIT: Github хранит целые снимки вместо дельт