> Всего в этом архиве около 7000 имён исходных пакетов общим объёмом > около 62Gb. Весь этот архив можно импортировать в git-репозитории > описанным выше способом, однако есть несколько препятствий: > - С каждым обновлением Сизифа архив пополняется новыми пакетами; это > значит, что одноразовый импорт не решает задачу полностью. > - Объём архива настолько велик, что процесс импортирования займёт больше > времени, чем обычно проходит между обновлениями Сизифа. > - Некоторые пакеты переименовывались, и было бы хорошо отследить такие > переименования для того, чтобы при импорте не потерять историю в момент > переименования. К сожалению, алгоритма выявления переименований у > меня нет. Можно построить такой алгоритм на основании такого соображения: Основная сущность, которая наследуется от одного srpm файла к другому, если эти два файла представляют собой последовательные сборки одного пакета -- это changelog в spec-файле. Если же changelog пакета при каком-то с ним изменении оказался не унаследован, то, полагаю, можно довольно обоснованно считать это уже другим пакетом, и не отслеживать историю (раз уж она и так была утрачена). Формальное правило может звучать так: - если последняя запись в changelog A.srpm совпадает с предпоследней в B.srpm, то пакет A.srpm является следующей за B.srpm сборкой того же пакета. Имена A и B при этом, естественно, значения не имеют. Таким образом можно решить проблему переименований. Однако тут есть такой момент, что ряд сборок между A.srpm и B.srpm в Сизифе по каким-то причинам может отсутствовать, а записи в changelog для этих сборок имеются. Для разрешения этих случаев правило можно обобщить, заменив совпадение с предпоследней записью на совпадение с одной из предыдущих. Это всё будет верно при условии, что (*) две changelog-записи никогда не совпадут случайно. > - Были в истории Сизифа случаи, когда совершенно разные пакеты в разное > время назывались одинаково, один такой пример (git) я уже приводил. > Как обнаруживать такие коллизии автоматически, я тоже не знаю. Вроде как этот случай можно также успешно разрешить из подобных соображений: - если A-V1.srpm и A-V2.srpm не имеют ни одной общей записи в changelog, то они принадлежат разным пакетам. Это можно обобщить на два множества версий одинаково поименованных пакетов. Естественно, этот принцип тоже будет работать, если верно (*) > Несмотря на все эти вопросы, в каждом конкретном случае импорт пакета > из архива Сизифа в git-репозиторий это вполне решаемая (как правило, > легко решаемая) задача. PS А я сначала подумал, что твои вопросы были риторические, и принялся уже импортировать. ;) -- Kirill Maslinsky ALT Linux Documentation Team http://heap.altlinux.ru