Доброго времени суток!
Недавно пришла в голову мысль, а почему бы не построить пакетный менеджер по принципу системы контроля версий? Но на сколько это хорошая идея, даже не знаю, вот хотел бы обсудить ее с сообществом. Возможно я что то не знаю, из возможностей пакетных менеджеров.
Если говорить на примере:
Есть какая то игра noname. У этой игры есть два типа пакетов: noname и noname-data, в первом хранятся исполняемые файлы, а во втором вся мультимедиа информация: звуки, текстуры, модели и.т.д. Предположим что пакет noname-data весит ~600 мегабайт. И в один прекрасный день игра обновилась в репозитории, после того как разработчики поменяли 10 текстур, 5 моделей… предположим, 10% от всех файлов… Но вот что бы обновиться, надо заново качать 600 мегабайт, а не 60 тех что изменены.
Ну так вот, почему бы при обновлении пакета, серверу не отправлять пользователю только измененные данные и «патч-файл», в котором описаны изменения, тем самым сократить объем трафика и время обновления? Почему бы подобную систему обновлений не реализовать в x-дистрибутиве? Есть ли в таком способе свои недостатки, не считая увеличение нагрузки на сервер(при вычислении разницы в файлах, хотя эту информацию думаю можно хранить статично, не вычисляя каждый раз)?
В генту есть такая штука как getdelta. Как раз качает только то что изменилось (http://ru.gentoo-wiki.com/wiki/HOWTO_%D0%AD%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D1%8F_%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_deltup)
Более того, в funtoo (ответвление от gentoo) даже сам список пакетов лежит в git, и его можно откатить на любое число и поставить пакет любой версии
в тему статья на хакере про бинарные патчи. содержит описание всего вышесказанного и еще пару систем для дебиан-байсед дистров. www.xakep.ru/post/57730/