Gear/remotes
Материал из ALT Linux Wiki
(→Gear/upstream/remotes.) |
(→Gear/upstream/remotes.) |
||
Строка 5: | Строка 5: | ||
== Gear/upstream/remotes. == | == Gear/upstream/remotes. == | ||
+ | |||
+ | Зачем так важно выделить информацию о remotes в отдельный файл? | ||
+ | чтобы сразу вдобавок к возможности отслеживания решить | ||
+ | и другую, на мой взгляд более важную, задачу: | ||
+ | |||
+ | Дать стандартный способ майнтайнерам поделиться с коллегами, | ||
+ | как же обновлять их репозиторий. | ||
+ | |||
+ | Потому что в текущем виде gear репозитории не дружественны | ||
+ | к совместной работе. tarball-обновляемые gear репозитории | ||
+ | дружественны, src.rpm дружественны, а VCS-обновляемые - нет. | ||
+ | |||
+ | Представьте себе, что ваш обновляемый из апстримного git | ||
+ | репозиторий какой-то добрый человек поверх обновил из | ||
+ | tarball'а и отправил на сборку в Сизиф. | ||
+ | |||
+ | Похожее чувство я испытываю, когда нужно обновить перловую | ||
+ | зависимость, но соответствуюший пакет обновляется из VCS. | ||
+ | Там весь пакет на 200 строчек. Я знаю, какая там версия. | ||
+ | У меня под рукой свежий апстримный tarball. | ||
+ | Но я не могу взять и обновить - надо рыться в VCS-помойках | ||
+ | и искать, где этот ****ов git и затем настраивать (каждый раз!) | ||
+ | клонированный репозиторий, и все только для того, | ||
+ | чтобы сделать git fetch origin. | ||
+ | |||
+ | И майнтайнер, который разместил свой пакет в VCS-обновляемом | ||
+ | gear репозитории не виноват --- это дыра в дизайне gear, | ||
+ | которая делает VCS-обновляемые gear репозитории гораздо худшим | ||
+ | средством для _совместной_ разработки, чем src.rpm. | ||
+ | |||
+ | И всего-то надо инструмент, чтобы gear репозиторий | ||
+ | хранил в себе свои remotes. | ||
+ | |||
+ | как минимум, что-то вроде | ||
+ | gear-save-remotes и gear-restore-remotes | ||
+ | |||
+ | Это удобно и NMUшникам, и основному майнтайнеру: | ||
+ | если remotes не сохраняются, то на git.alt копии его | ||
+ | репозиториев неполноценные, и если слетит диск, | ||
+ | то не достаточно будет склонировать их с git.alt, | ||
+ | придется заново тратить время на восстановление | ||
+ | локальных настроек remotes (а если использовался | ||
+ | git-svn, то там все вообще печально). | ||
+ | |||
+ | Да и на даче / в походе удобнее - | ||
+ | не нужно таскать с собой диски | ||
+ | или тратить время на настройку git-клона. | ||
+ | |||
+ | |||
=== Файл .gear/upstream/remotes === | === Файл .gear/upstream/remotes === | ||
[remote "upstream"] | [remote "upstream"] | ||
url = git://git.netxms.org/public/netxms.git | url = git://git.netxms.org/public/netxms.git | ||
fetch = +refs/heads/*:refs/remotes/upstream/* | fetch = +refs/heads/*:refs/remotes/upstream/* | ||
+ | |||
+ | === утилиты === | ||
+ | gear-save-remotes и gear-restore-remotes. |
Версия 15:24, 23 июля 2014
Gear/upstream/remotes.
Зачем так важно выделить информацию о remotes в отдельный файл? чтобы сразу вдобавок к возможности отслеживания решить и другую, на мой взгляд более важную, задачу:
Дать стандартный способ майнтайнерам поделиться с коллегами, как же обновлять их репозиторий.
Потому что в текущем виде gear репозитории не дружественны к совместной работе. tarball-обновляемые gear репозитории дружественны, src.rpm дружественны, а VCS-обновляемые - нет.
Представьте себе, что ваш обновляемый из апстримного git репозиторий какой-то добрый человек поверх обновил из tarball'а и отправил на сборку в Сизиф.
Похожее чувство я испытываю, когда нужно обновить перловую зависимость, но соответствуюший пакет обновляется из VCS. Там весь пакет на 200 строчек. Я знаю, какая там версия. У меня под рукой свежий апстримный tarball. Но я не могу взять и обновить - надо рыться в VCS-помойках и искать, где этот ****ов git и затем настраивать (каждый раз!) клонированный репозиторий, и все только для того, чтобы сделать git fetch origin.
И майнтайнер, который разместил свой пакет в VCS-обновляемом gear репозитории не виноват --- это дыра в дизайне gear, которая делает VCS-обновляемые gear репозитории гораздо худшим средством для _совместной_ разработки, чем src.rpm.
И всего-то надо инструмент, чтобы gear репозиторий хранил в себе свои remotes.
как минимум, что-то вроде gear-save-remotes и gear-restore-remotes
Это удобно и NMUшникам, и основному майнтайнеру: если remotes не сохраняются, то на git.alt копии его репозиториев неполноценные, и если слетит диск, то не достаточно будет склонировать их с git.alt, придется заново тратить время на восстановление локальных настроек remotes (а если использовался git-svn, то там все вообще печально).
Да и на даче / в походе удобнее - не нужно таскать с собой диски или тратить время на настройку git-клона.
Файл .gear/upstream/remotes
[remote "upstream"] url = git://git.netxms.org/public/netxms.git fetch = +refs/heads/*:refs/remotes/upstream/*
утилиты
gear-save-remotes и gear-restore-remotes.