On Wed, Sep 13, 2006 at 08:37:52PM +0400, Dmitry V. Levin wrote: > В начале августа я рассказал о том, что с расширением серверных мощностей > стало возможным опубликовать (rsync.altlinux.org::archive) и поддерживать > архив Сизифа, накопленный с 14 ноября 2003 года. > С введением в строй git.altlinux из этого архива можно извлечь ещё > один вид пользы. А именно, если архив проиндексирован попакетно, то > (с помощью утилиты gear-srpmimport) можно импортировать исходные пакеты > с сохранением всей доступной истории. > Я поступил таким образом со всеми своими пакетами, которые не хранил в > cvs, и результат мне показался удачным. > > Всего в этом архиве около 7000 имён исходных пакетов общим объёмом > около 62Gb. Весь этот архив можно импортировать в git-репозитории > описанным выше способом, однако есть несколько препятствий: > - С каждым обновлением Сизифа архив пополняется новыми пакетами; это > значит, что одноразовый импорт не решает задачу полностью. > - Объём архива настолько велик, что процесс импортирования займёт больше > времени, чем обычно проходит между обновлениями Сизифа. > - Некоторые пакеты переименовывались, и было бы хорошо отследить такие > переименования для того, чтобы при импорте не потерять историю в момент > переименования. К сожалению, алгоритма выявления переименований у > меня нет. > - Были в истории Сизифа случаи, когда совершенно разные пакеты в разное > время назывались одинаково, один такой пример (git) я уже приводил. > Как обнаруживать такие коллизии автоматически, я тоже не знаю. > > Несмотря на все эти вопросы, в каждом конкретном случае импорт пакета > из архива Сизифа в git-репозиторий это вполне решаемая (как правило, > легко решаемая) задача. По части перла я вот что хочу сделать. Я написал скрипт, который импортирует все апстримовские патчи, начиная с perl-5.8.0. То есть не просто perl-5.8.[012345678], а все промежуточные изменения. То есть это что-то вроде импорта из p4 (p4 -- это такая гадость, которая используется в качестве scm у перла; она ещё называется perforce). Патчи относительно perl-5.8.0 вплоть до текущего состояния perl-5.8.8+ лежат на rsync://public.activestate.com/perl-5.8.x-diffs/ На всякий случай прилагаю скрипт, который их имортирует. Этот скрипт делает бранч perl-5.8, в котором я потом расставлю таги perl-5.8.[012345678]. Скрипт работает хорошо, но пришлось решить две проблемы: 1) \r\n -> \n; 2) поправить в одном месте дефектный патч (см. my.gz). Это /home/at/perl-5.8.x-diffs/18673.gz, там остсутствует файл CPAN/ChangeLog с пометкой "(binary)", я взял этот файл и тарболла CPAN-1.64.tar.gz. Сейчас на выходе дерево исходников после применения всех патчей совпадает с текущим деревом исходников perl-5.8.8+, полученным иным (непосредственным) способом. Соответственно дело в том, что git-srpmimport сюда как бы не вписывается. Импортировать тарболлы и патчи смысла нет, потому что я собираюсь отбранчить master от perl-5.8 и применить все имеющиеся патчи уже к исходникам. Что тогда делать с архивом?