[devel] Простой пакет в git-репозитарии
Eugene Prokopiev
=?iso-8859-1?q?enp_=CE=C1_altlinux=2Eorg?=
Пн Апр 7 15:24:37 MSD 2008
> > Нет ли более человечного способа создать в репозитарии 2 независимых
> > друг от друга бранча?
>
>
> Это и был более человечный. Менее человечный - это написание
> скрипта-обертки, типа git-commit-without-parent, который бы делал
> что-то типа git-write-tree, объединенное с git-commit-tree, после чего
> бы создавался новый бранч через git-branch.
>
> Примерно так:
>
> TREE=`git-write-tree`
> COMMIT=`echo "Creating new branch" | git-commit-tree "$TREE"`
> git-branch newbranch "$COMMIT"
>
> Тут правда надо делать корректную обработку ошибок и т.п.
если я правильно понял, то самый человечный предложил Денис :)
> > Хотя, иметь репозитарий-заготовку с пустыми
> > спеком и .gear/rules - не такая уж плохая идея :) Еще лучше упихать
> > эту процедуру подальше от любопытных глаз в какой-нибудь gear-init,
> > который из тарболла делает репозитарий с рекомендуемой структурой. И
> > из src.rpm делает то же, т.е. с бранчами, а не с подкаталогом.
>
> Не для всех вариантов это имеет смысл.
Ну разве что кому-то будет лень обновнять апстримные исходники, а
потом мержить их. Будет простой инструмент - будет не лень, а
преимущества разделения очевидны. Или я не прав?
> Можно вместо тегов использовать имя ветки. Главное чтобы она была
> смержена туда где .gear-rules.
$ cat .gear/rules
tar: upstream:.
$ git-branch -a
* master
upstream
$ PAGER=cat git-log
commit 548837f805edb5b33f4a483d438b2cfe149d46c0
Merge: 85de2c0... c026f1b...
Author: Eugene Prokopiev <enp на altlinux.ru>
Date: Mon Apr 7 13:47:58 2008 +0400
...
$ gear -v --commit --export-dir=/tmp
Created commit dc2b31b: Temporary commit by gear.
3 files changed, 4 insertions(+), 2 deletions(-)
create mode 100644 .gear/tags/list
gear: Temporarily committed local changes.
gear: .gear/rules line 1: Name "upstream" not found in tag list
gear: .gear/rules line 1: Failed to make archive
gear: Reverted temporary commit dc2b31b9fd84fc4eaf049c4abbd048cadfcaaa7e.
> > Посмотрел туда и еще в парочку, сделал вывод, что общепринятой
> > структурой репозитария (если мы выносим апстримные исходники в
> > отдельный бранч) является такая:
> >
> > $ git-branch -a
> > * (no branch)
> > master
> > origin/HEAD
> > origin/master
> > origin/upstream
> >
> > Назначение master и origin/upstream понятно, будет ли последний
> > локальным или ремотным (интересно, а как его по-русски назвать?
> > "удаленный" - еще хуже) - зависит, как я понял, от того, используем мы
> > gear-update или git-svn fetch :)
> >
> > Зачем нужны origin/HEAD и origin/master?
>
> Это удаленные ветки, которые отслеживают удаленный репозитарий на git.alt.
Чуть подробнее можно? Или ссылку.
--
С уважением,
Прокопьев Евгений
Подробная информация о списке рассылки Devel