Вы можете использовать программное обеспечение SCM (также называемое контролем версий), например git
, mercurial
или fossil
.
Таким образом вы избежите огромного количества bak
файлов в рабочем каталоге и будете отслеживать все предыдущие версии одновременно.
ИМХО самым простым из них будет ископаемое-scm. Это статически компилируемый одиночный файл, который может обрабатывать такие задания. (Кстати, созданный тем же программистом, который создал SQLite, так что ожидайте качества)
Ваш рабочий процесс может быть таким:
cd
в каталог, где необходимо отслеживать файлы, и инициируйте репозиторий с помощью командыfossil init
(он подготовит один файл базы данных)- Скажите окаменелости, чтобы отслеживать конкретный каталог:
fossil open
- Добавить файлы / каталоги рекурсивно в хранилище
fossil addremove --dotfiles
- Сохранить текущее состояние каталога в хранилище:
fossil commit
или, если вы заботитесь о целостности файлов, то:fossil commit --sha1sum
Все последующие вызовы fossil
просто fossil commit
(если вам нужно добавить больше новых файлов или удалить некоторые из отслеживания, просто выполните перед фиксацией fossil addremove --dotfiles
)
Таким образом, все изменения в файлах будут храниться во временной шкале и могут быть предварительно просмотрены или сравнены (diff) или извлечены (извлечены) из файла репозитория ether за файлом или полностью восстановят предыдущее состояние всего каталога.
Вы можете использовать, fossil extras --dotfiles
чтобы показать новые не отслеживаемые файлы или определить только файлы, которые были измененыfossil changes --abs-paths --sha1sum --header -v
Если вам нужно исключить некоторые файлы или каталог, ископаемые также поддерживают это.
Вы можете видеть временную шкалу изменений в хорошем веб-интерфейсе, созданном одним и тем же файлом, или даже использовать внутреннюю WiKi, чтобы сделать хорошую аннотацию к изменениям.
Если вам нужно удалить какой-либо контент из хранилища, для этого fossil
предусмотрен механизм «shunning».