[devel] git-svnimport для apache2 (was: I: packages with old versions)
Aleksey Avdeev
=?iso-8859-1?q?solo_=CE=C1_solin=2Espb=2Eru?=
Чт Янв 11 06:10:42 MSK 2007
Aleksey Avdeev пишет:
...
>>>>>Каковы временные рамки?
>>>
>>>Мне кажется, что ненапряжные -- было бы неплохо к рождественским
>>>каникулам иметь apache-2.2 на посмотреть;
>>
>>
>>Хотелось бы всё-таки немного раньше, именно ввиду нижепроцитированного.
>
>
> OK. Тогда, пожалуй сделаем так: Беру 2х недельный таймаут на
> нормальное запинывение истории в git (в эту пятницу -- оповещу о
> промежуточных результатах). Если не получается -- откладываю данную
> задачу на неопределённый срок: в git заливаю только историю пакета.
Сорри, сроки я подзатянул...
С импортом репозитария apache (с <http://svn.apache.org/repos/asf>) я
разобрался и с вечера 06.01.2007 он у заливается в git. Правда, делает
это неспешно (но лилиею надежду, что к выходным он всё таки зальётся).
Подводные камни:
1. git-svnimport
Для решения данной задачи пришлось обработать напильником
git-svnimport, попутно разбираясь с перлом. Результат, здесь
<http://git.altlinux.ru/people/solo/packages/?p=git.git;a=log;h=solo/svnimport>.
Косяков там, думаю, порядочно (прошу перловодов на него глянуть, я
только учусь пользоваться данным средством), но в моём частном случаи --
оно работает с приемлемым качеством...
Что именно сделано: в git-svnimport добавлена обработка параметра -L
<файл со списком бранчей и тегов>. При его наличии -- параметры -b и -t
_не_используются_ (интеллект отключён, пути к бранчам и тегам берутся из
списка). Файл содержит строки вида:
[BT] <путь> <имя>
В моём случаи, используется list.txt, приложенный к письму. И вызов
git-svnimport выглядит примерно так (несущественные параметры опущены):
git-svnimport -m -T httpd/httpd/trunk -C httpd -L list.txt -D
http://svn.apache.org/repos/asf
2. Обрыв длительной закачки
После загрузки около 1000 коммитов -- загрузка прекращается примерно
со следующей диагностикой:
RA layer request failed: REPORT request failed on
'/repos/asf/!svn/bc/100000': REPORT of '/repos/asf/!svn/bc/100000':
Could not read response body: connection was closed by server.
(http://svn.apache.org) at /home/solo/bin/git-svnimport line 1042
(Ругань в строке
'$svn->{'svn'}->get_log("/",$current_rev,$opt_l,0,1,1,\&commit_all,$pool);')
Решил тупым (без защит и проверок) скриптом auto-svnimport.sh: грузит
порциями по 1000 коммитов, начинает новую загрузку с коммита
предшествующего 1-2 последним в предыдущей.
--
С уважением. Алексей.
----------- следующая часть -----------
An embedded and charset-unspecified text was scrubbed...
Name: list.txt
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20070111/95d1a639/attachment-0001.txt>
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : auto-svnimport.sh
Тип : application/x-shellscript
Размер : 1032 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20070111/95d1a639/attachment-0002.bin>
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : signature.asc
Тип : application/pgp-signature
Размер : 548 байтов
Описание: OpenPGP digital signature
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20070111/95d1a639/attachment-0003.bin>
Подробная информация о списке рассылки Devel