Из личного опыта: imho самое правильное это иметь неразрывную цепочку обновлений с первой версии до текущей, т.е 1>2, 2>3, 3>4 итд.
Периодически для чистой установки выпускать мажорные версии, - но при этом все равно иметь неразрывную цепочку обновлений.
Делать патчи вида 1>4, 2>4 итд - по моему опыту архи неправильно, т.к создает огромные риски неявных багов + затраты на сборку таких патчей.
По факту для пользователя нет проблемы установить много обновлений.
Будет осуществляться проверка на то, какая из блоков цифр в версии отличается.
Это Вы какие то мелкие частности обсуждаете.
Как у них осуществляется проверка наличия даже самого ненужного файла? Удалил файл из каталога, а он берет и докачивает его. Проверяет перед запуском все каталоги на время изменения и сравнивает с серверными?
Вопрос третий: Насколько эффективно будет сравнивать время изменения каталогов у пользователя и сравнивать с серверными? Ведь если даже в самой глубокой директории был изменен/удален/создан файл, то самый верхний по иерархии каталог будет иметь дату изменения ту, когда был затронут файл. Соответственно, таким образом можно избежать большого количества рекурсивных проверок.
И, соответственно, обновиться будет проще. Удаляем измененный каталог и закачиваем заново.
Привязываться к дате изменений - не лучшая идея. Проверка обходит каталоги рекурсивно, сравнивает не только список файлов но и их хеши. Почитайте как работает dropbox/яндекс.диск, да тот же торрент наконец