On Sun, Mar 14, 2010 at 12:59:56AM +0200, Igor Vlasenko wrote: > On Sun, Mar 14, 2010 at 12:13:46AM +0300, Alexey Tourbin wrote: > > А как совместить предыдущую кучу работы и очередную порцию изменений > > в федоровских пакетах? Если это разовая конвертация то это неинтересно. > > А автоматически совмещать изменения можно только в простейших случаях. > > Я у себя совмещаю автоматически, но не в том смысле, что изменения > хранятся как diff(1), а какой-то шибко умный робот пытается > этот diff накатить обратно. > > Вместо этого, изменения пишутся как скрипт на перле к моей библиотечке > радактирования спек-файлов, а утилита импорта учитывет его при работе. > это решение, конечно, имеет и минус - повышает порог вхождения. Автоматическое редактирование (инструкции) вместо патча или мёржа (текстовые изменения) - это интересная тема. Грубо говоря, инструкции тупы и не учитывают изменения в экосистеме. А патчи/мёржи могут показаться очень привередливыми, но зато они почти наверняка делают то, что изначально имелось в виду. Сработала инструкция или нет, нужно всегда думать дополнительно. А как определить что прикладывается патч или нет, было продумано одним мужиком ещё 20 лет назад. Был ещё один мужик который пытался сформулировать как можно совмещать текстовые изменения по смыслу. Я не знаю darcs загнулся или нет. > Вот пример простой правки. > http://git.altlinux.org/people/viy/packages/?p=jppimport.git;a=blob;f=hooks/activeio.pl;h=1e9b612453b2193e0633340ce5f0e4bb3be2fe95;hb=f2f58a7196697b194617b58513e16822fa42955e > > Экономические выгоды здесь следующие: > * 9/10 пакетов править вообще не нужно. > * когда у меня 700 пакетов, то единичное изменение ломает пакеты сразу > десятками, соответственно один скрипт и чинить их может десятками. > * правочный скрипт -- есть выжимка именно моей работы. > это тот кусок, который надо переносить из спека в спек. > Когда сопровождаешь 700 пакетов, то уже в памяти их удержать нельзя. По-моему это опасное увлечение - оно чревато нежелательной бере^W последствиями. И как это так можно. Надо ведь знать душу каждого пакета, его внутреннюю суть. :-) > а разобраться в спеке, что там важного и что наносного, > и какие и зачем правки вводились -- даже если история хранилась > в .git, в diffах слишком много постороннего шума. > Поэтому я храню в .git только правочный скрипт. > > + автоматизация всего и вся - реально экономит время. > скрипты берут на себя всю тупую работу, а на человека > остается умная работа по разгадыванию головоломок. > Почему перестали собираться пакеты A и B, > почему роботу не удалось собрать пакет С, > и как это все чинить. Автоматизация автоматизации рознь - не нужно всё чесать под одну гребёнку. Автоматическое редактирование текста - это по-моему наиболее проблемная область. Меня больше интересуют автоматические пре-стабилизаторы и быстрая пост-интроспекция. > Иначе я бы бросил майнтайнерство, если бы не нашел в нем > интересных задач. Как говорится, программист три раза > одну и ту же последовательность операций не выполняет, > иначе он не программист.