# Revis - упрощённая реализация системы контроля версий
Начнем с того на чем строится вся система. Как можно легко отслеживать любое изменение информации? Ответ довольно просто, это вычисление её **хеша**. Простыми словами хеш это **уникальный цифровой отпечаток данных**. Он имеет фиксированную длину символов и вычисняется с помощью хеш-функции.

На этом строится вся логика работы Revis, Git и других подобных систем контроля версий. Благодоря хешам мы получаем одновременно **уникальный индитификатор** и с пощоью него **отслеживаем любое изменение в файле**. Даже если добавить пустой перенос или один символ в файл на тысячи строк мы все ровно увидим изменение.
`Любое изменение файла = изменение его хеша.`
Самое главное для работы системы мы узнали. Дальше все просто и сводится к простой работе с файлами.
---
### Где и как хранятся файлы которые мы сохраняем.
### Возможно для другой главы:
Но тогда возникает закономерный вопрос. А что делать если файл не в текстовом формате? Допустим фото, видео или архив. И решается эта проблема тоже достаточно просто. Мы читаем файл в **бинарнорм режиме** и работаем не с строками в привычном понимании а с **байтами**. В таком случае нам не важно какой формат у файла, мы просто **читаем что внутри самого файла**.