[devel] Метарепозиторий Сизифа

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Ноя 9 02:04:20 MSK 2007


On Fri, Nov 09, 2007 at 01:38:50AM +0300, Dmitry V. Levin wrote:
> > Это тогда философский вопрос получается -- чем мёрж отличается от ребейса.
> > Если и тот и другой одинаково возможны, то в результате у мёрж-коммита
> > и ребейса будут одинаковые деревья, но разная история.
> 
> Лично я воспринимаю rebase как частный и довольно точно определённый вид
> merge.  Я не вижу способа перенести git'овое представление термина
> "merge by recursive" на нашу почву.

Merge -- полное сохранение истории, такой, какой она была, при том, что
в точке мёржа имеется "нематематический катаклизм".  В нашем случае этот
нематематический катаклизм можно сделать немного более математическим
за счёт фактического "перепроигрывания" (или же параллельного
дублирования) истории.  То есть стратегия мёржа в наших руках --
текстуального соответствия не требуется, а требуется выяснять
семантическую возможность мёржа.

Мёрж атомарен только в смысле подключения его к HEAD'у.
Сама по себе транзакция можно состоять из целого дерева коммитов.

Например, я отправил новую сборку perl-XML-LibXML, и сломался
perl-XML-LibXSLT.  Не дождавшись окончания тестовой пересборки,
я собрал libxml2.  Потом я получил результаты по perl-XML-LibXML
и взялся чинить perl-XML-LibXSLT.  Но libxml2 сам по себе уже прошёл
в HEAD.  Движение хеда на рисунке строго вертикальное.

	 /* merged perl-XML-LibXML with fixed perl-XML-LibXSLT
	* | perl-XML-LibXSLT built ok
	* | perl-XML-LibXML built ok against libxml2
	|\| branch is awaken by new perl-XML-LibXSLT 
	| * libxml2 built ok
	* | perl-XML-LibXSLT rebuild failed
	 `* perl-XML-LibXML built ok

То есть здесь транзакция атомарна лишь в том смысле, что потом весь
бранч подцепляется к хеду за один раз.  Но может как бы происходить
новое слияние хеда в саму транзакцию.  В общем, мёрж отражает "более
настоящую" историю, как это на самом деле происходит во времени.

Впрочем, я не против ребейса.
Я просто почему-то всегда думал про мёржи.
Теперь буду думать про ребейсы. :)

> В первом приближении можно, поскольку это не меняет сути дела.
> Я утверждаю, что apt-cache unmet в нынешнем виде не отвечает на тот
> вопрос, на который мы традиционно считали что отвечает.  Это не значит,
> что мы не можем решать глобальную задачу сборки Сизифа, пока не решим
> конкретную проблему apt-cache unmet.

Анметы можно маскировать кофликтами.
Над этим надо будет думать в другом треде.

> > Да.  Это самое слабое место.  После того, как собрались пакеты
> > транзакции, нужно ждать какое-то время, пока не просчитается список
> > на тестовую пересборку.  Это время в среднем наверное превышает сборку
> > поступивших пакетов + последующую тестовую пересборку.
> 
> Это можно обойти, не реализуя свой алгоритм обработки графа зависимостей,
> без использования apt?

Нет.  Не будет гарантии.  А тут нужна гарантия, то есть "полное
вычисление состояния".  Впрочем, гарантия не может быть сильнее,
чем воспроизводимость сборки пакетов.  Этим тоже надо заниматься
отдельно.

> > > Наверное, можно сохранять промежуточные состояния жизни транзакции, если
> > > это интересно.  Я пока не вижу, зачем это может понадобиться.
> > 
> > Для анализа промежуточных конфигураций, которые образуются в ходе
> > транзакции.
> 
> Какого рода анализа?

Мне интересно знать, что у кого сломалось и как они это чинили.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20071109/984c4ef5/attachment-0002.bin>


Подробная информация о списке рассылки Devel