Трюк с файлами версий

Есть интересный трюк, который позволяет иметь информацию об обновлениях версий вашей программы. Наверняка, он широко известен, поскольку достаточно прост, но вот я до него относительно недавно дошел.

Есть задача – получить список всех версий обновлений программы и получить последнюю (актуальную) версию. Обновления выполняются через rsync, т.е. инкрементально.

Для этого нужно в релизе (на rsync сервере) вашей программы добавить 2 файла: VERSION и version-1.2.3, где 1.2.3 – номер версии релиза. В оба файла записать номер версии релиза. При обновлении из rsync не удалять существующие файлы (флаг --delete), поскольку в директории с программой хранятся конфиги. Тогда в файле VERSION будет храниться актуальная версия, а список версий обновлений можно получить пройдясь по всем файлам по маске version-*.