Git.alt/FAQ: различия между версиями
Нет описания правки |
(→Q: Почему не находится апстримный тег версии при постановке задания на сборку?: Как скопировать задание) |
||
Строка 41: | Строка 41: | ||
Во избежание забывания [http://lists.altlinux.org/pipermail/devel/2011-March/189512.html рекомендуется] добавить проверку перед коммитом (стоя в корневом каталоге gear-репозитория): | Во избежание забывания [http://lists.altlinux.org/pipermail/devel/2011-March/189512.html рекомендуется] добавить проверку перед коммитом (стоя в корневом каталоге gear-репозитория): | ||
ln -snf /usr/share/git-core/templates/hooks/pre-commit.sample .git/hooks/pre-commit | ln -snf /usr/share/git-core/templates/hooks/pre-commit.sample .git/hooks/pre-commit | ||
== Q: Как просто скопировать неудавшееся чужое задание? == | |||
Вот какую команду я сочинил, чтобы скопировать задание: | |||
ssh girar build --test-only -b t7 $(ssh girar task show 153515 | egrep '(dir|tag_name)=' | sed 's:.*=::') | |||
Это работает, если в исходном задании были только сборки из gear-repo. | |||
(Можно адаптировать скрипт и для общего случая. Пожалуйста, если | |||
сделаете, поделитесь результатом!) | |||
;Замечания: | |||
Копировать ''удавшееся'' задание просто так, наверное, не имеет | |||
большого смысла (потому что его результаты уже попали в репозиторий). | |||
(Проигрывание ещё раз удавшегося задания -- другая задача. Это | |||
происходит при регулярной тестовой пересборке Sisyphus.) | |||
Проиграть ''своё'' задание в виде нового, наверное, не такая сложная | |||
задача, потому что можно просто повторить свои shell-команды. | |||
;Объяснение: делаем список чередующихся путей к gear-repo и тегов фильтрацией вывода {{cmd|task show}}: | |||
$ ssh girar task show 153515 | |||
id=153515 locked=no shared=no test_only=yes repo=sisyphus owner=cas state=FAILED try=26 iter=1 | |||
40:dir=/people/cas/packages/libwbxml.git | |||
40:tag_name=0.11.4-alt1 | |||
40:tag_id=d8143b4e577da0cd3ec5510406e5544600318fca | |||
40:tag_author=cas <cas@altlinux.org> | |||
40:userid=cas | |||
40:pkgname=libwbxml | |||
100:userid=cas | |||
200:userid=cas | |||
300:userid=cas | |||
400:userid=cas | |||
440:dir=/people/cas/packages/lasso.git | |||
440:tag_name=2.5.0-alt1 | |||
440:tag_id=e276eb2af0c557b67a4b44cc92343c3671f52e72 | |||
440:tag_author=cas <cas@altlinux.org> | |||
440:userid=cas | |||
440:pkgname=lasso | |||
... | |||
{{Category navigation|title=git.alt|category=git.alt|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=git.alt|category=git.alt|sortkey={{SUBPAGENAME}}}} | ||
{{Category navigation|title=FAQ|category=FAQ|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=FAQ|category=FAQ|sortkey={{SUBPAGENAME}}}} |
Версия от 20:51, 11 декабря 2015
Q: Как удалить ветку из репозитория git.alt?
A: Как обычно в git.
Q: Почему не получается собрать переделанный тег?
A: Потому что теги фиксируются при добавлении задания на сборку. Лучше не мухлевать, см. тж. git-tag(1) насчёт "re-tag".
Q: Можно ли оперативно получить собранный пакет?
A: да:
- успешно собранные из gear-репозиториев пакеты сразу публикуются на /gears (он же git.altlinux.org::gears)
- успешно собранные из srpm-файлов пакеты сразу публикуются на /srpms (он же git.altlinux.org::srpms)
Обратите внимание:
- обновления gear-пакетов НЕ публикуются на git.altlinux.org::srpms, а
- обновления srpm-пакетов НЕ публикуются на git.altlinux.org::gears.
Пакет, будучи однажды собранным из gear-репозитория, более не обновляется на git.altlinux.org::srpms.
Q: Почему не находится апстримный тег версии при постановке задания на сборку?
A:
- либо не был добавлен в .gear/tags/ (при помощи gear-store-tags, ранее gear-update-tags),
- либо добавлен после тега, отправленного на сборку -- в таком случае можно получить подобное:
generating pkg.tar for collectd.git tag "4.10.3-alt1"... \ gear: .gear/rules line 1: Name "collectd-4.10.3" not found in tag list gear: .gear/rules line 1: Failed to make archive girar-task add: failed to create pkg.tar for collectd.git tag "4.10.3-alt1"
Рекомендуемый порядок команд для репозиториев, где апстримная ветка мержится в ту, на которой создаётся тег для сборки (например, sisyphus):
gear-store-tags -acv gear-hsh gear-create-tag
Во избежание забывания рекомендуется добавить проверку перед коммитом (стоя в корневом каталоге gear-репозитория):
ln -snf /usr/share/git-core/templates/hooks/pre-commit.sample .git/hooks/pre-commit
Q: Как просто скопировать неудавшееся чужое задание?
Вот какую команду я сочинил, чтобы скопировать задание:
ssh girar build --test-only -b t7 $(ssh girar task show 153515 | egrep '(dir|tag_name)=' | sed 's:.*=::')
Это работает, если в исходном задании были только сборки из gear-repo. (Можно адаптировать скрипт и для общего случая. Пожалуйста, если сделаете, поделитесь результатом!)
- Замечания
Копировать удавшееся задание просто так, наверное, не имеет большого смысла (потому что его результаты уже попали в репозиторий). (Проигрывание ещё раз удавшегося задания -- другая задача. Это происходит при регулярной тестовой пересборке Sisyphus.)
Проиграть своё задание в виде нового, наверное, не такая сложная задача, потому что можно просто повторить свои shell-команды.
- Объяснение
- делаем список чередующихся путей к gear-repo и тегов фильтрацией вывода task show:
$ ssh girar task show 153515 id=153515 locked=no shared=no test_only=yes repo=sisyphus owner=cas state=FAILED try=26 iter=1 40:dir=/people/cas/packages/libwbxml.git 40:tag_name=0.11.4-alt1 40:tag_id=d8143b4e577da0cd3ec5510406e5544600318fca 40:tag_author=cas <cas@altlinux.org> 40:userid=cas 40:pkgname=libwbxml 100:userid=cas 200:userid=cas 300:userid=cas 400:userid=cas 440:dir=/people/cas/packages/lasso.git 440:tag_name=2.5.0-alt1 440:tag_id=e276eb2af0c557b67a4b44cc92343c3671f52e72 440:tag_author=cas <cas@altlinux.org> 440:userid=cas 440:pkgname=lasso ...