Eugene Prokopiev пишет: > Aleksey Avdeev пишет: >> Eugene Prokopiev пишет: >> >>>>>> Мне удобнее держать полученное из старонних источников отдельно, с >>>>>> мимниумом изменений: продукты полученные от поставщика могут требовать >>>>>> предварительной обработки (мытья, например) и до её проведения -- >>>>>> незачем их мешать их с остальными инградиентами (на своей кухне я хозяин >>>>>> -- смешаю как сочту нужным ;-)). >>>>> Это верно, однако разделение можно понимать по разному ;) Разные бранчи >>>>> требуют регулярного слияния, если же просто вынести исходники апстрима в >>>>> отдельный каталог, то получим и разделение (пока для меня в принципе >>>>> достаточное), и уменьшение количества операций. >>>> Деление -- получаем. Но выцепить изменения сделанные в исходниках уже >>>> сложнее... >>> Кажется, выше я писал, каким образом я выцепляю изменения: >>> >>> >>>> Патчи, если таковые имеются, можно держать в отдельных файлах, как и >>>> раньше. Если эти патчи мои, то делаю я их старым проверенным способом: >>>> собираю апстримные исходники и тестирую разультат где-то отдельно >>>> (иногда в системе, в которой не жалко сделать make install ;) ), >>>> изменяемые файлы перед изменением обзываю .orig, после изменений делаю >>>> gendiff. Даст ли мне ощутимые преимущества какой-нибудь более правильный >>>> способ с отдельным бранчем под каждый патч? >>> Если вы делаете иначе, пожалуйста, расскажите как (по возможности >>> подробно, с командами). Особенно интересуют преимущества по сравнению с >>> приведенным выше способом. >> >> Патчи, к которым я приложил руку после перехода на git, в виде файлов >> я не храню (только унаследываемые). Для из поучения -- использую diff >> между тегами, благо gear это позволяет. (Пока непозволял -- использовал >> самописанный велосипед для автоматизированного создания патчей на базе >> заданных коммитов.) >> >> Поскольку, для работы с данной схемой всё равно нужны фиктивные мержи >> и gear-upate-tag, у меня нет усложнения техпроцесса при хранении >> исходников в отдельном банче. Это, в свою очередь, позволяет >> небеспокоется о имени каталога, куда апстрим пакует исходники (если они >> распространяются в тарбл, то версия часто присутствует в имени >> каталога): достаточно соглашения, что всё находящееся в корне бранча с >> сорцами -- сорцы, полученные из внешнего источника (возможно -- >> правленные, но в данном контексте это не важно). > > Под каждый свой патч вы выделяете отдельный бранч? Из сказанного вами > вроде этого не следует, хотя я с трудом представляю себе обратное. Можно > все-таки пример? Да, под каждый патч -- отдельный бранч. Иногда -- несколько патчей в одном бранче (это предусматривет ветвление в будующием). Пример -- . (Внимание: репозитарий поряко 100 Мб.) > > Вот допустим, мне нужно изменить что либо в Makefile.in, я создаю бранч > (git-branch dbmail_2_2_makefile_patch dbmail_2_2), что я получаю? Копию > предыдущего без тагов? А идентификаторы коммитов будут такие же? В момент созия бранча -- теже. Потом -- теже + новые. > > Теперь мне нужно сделать таг, слить его с бранчем srpms, чтобы сделать > положить в пакет исходники нового бранча, исправить .gear-rules и > собрать пакет. С помощью gear. Можно это делать сразу в hashr (см. ниже). > > Потом установить его в hasher, чтобы в рабочей системе не устраивать > свинство с *-devel и промежуточными результатами сборки - опа, а какие > тогда преимущества этого подхода, если все сводится к старому способу с > .orig? С борку в hasher выполняю спомощью gear: $ gear --hasher -- hsh ... В сложных случаях, когда нужен "сырой" и/или промежуточные результаты сборки .src.rpm, действую через: $ gear --rpmbuild -- rpmbuild --nodeps -b* > > Значит собирать надо в бранче (ладно, иногда на свинство можно > согласиться ;) ), хорошо, собираю, какой командой теперь разницу > выгрузить в файл, перейдя в бранч srpms? git-diff, если правельно понял вопрос. -- С уважением. Алексей.