[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