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.

 
Личные инструменты