From: "Damir Shayhutdinov" <damir@altlinux.org> To: "ALT Linux Team development discussions" <devel@lists.altlinux.org> Subject: Re: [devel] Простой пакет в git-репозитарии Date: Mon, 7 Apr 2008 15:04:19 +0400 Message-ID: <679044850804070404t52b5208cled3eadc07de2b33a@mail.gmail.com> (raw) In-Reply-To: <f7a739430804070318u2bf82955hfe027e5f9a5814d4@mail.gmail.com> > > Для этого создается пустой временный репозитарий, в него коммитится > > спек и .gear-rules, потом ветку master оттуда надо будет втянуть в > > основной репозитарий. > > Последняя заметка в > http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/gitnotes? > > Процедура выглядит ужасно. Вы можете себе представить подобные > инструкции в официальном руководстве мантейнера? ;) Понятно, почему > его нет и не скоро будет :) > > Нет ли более человечного способа создать в репозитарии 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 делает то же, т.е. с бранчами, а не с подкаталогом. Не для всех вариантов это имеет смысл. > $ mkdir ../tmp > $ cd ../tmp > $ git-init > $ mkdir .gear > $ echo "tar: last:." > .gear/rules > $ cat > mypackage.spec << EOF > > Name: mypackage > > Version: 0.1 > ... > > EOF > $ git-add . > $ git-commit -a -m 'initial commit' > $ cd ../mypackage > $ git-pull ../tmp master:master > > Тут я получаю не совсем то, что ожидал: Потому что вместо pull надо было использовать fetch. > А как втянуть без merge? Мне ведь не нужны спек и .gear в upstream. > Сделал git-reset --hard HEAD^. git-fetch. Pull = fetch + merge. > Теперь мержим (фиктивно) бранчи, обновляем ненужные нам теги (иначе > gear обидится - а почему они не нужны, я уже говорил: в бранче > upstream некрасиво иметь информацию об именах пакетов, тем более, что > на основании одного коммита может собираться несколько релизов; обход > чуть менее некрасивый - при каждом новом коммите в upstream двигаем > тег last на него) и собираем пакет: Можно вместо тегов использовать имя ветки. Главное чтобы она была смержена туда где .gear-rules. > Посмотрел туда и еще в парочку, сделал вывод, что общепринятой > структурой репозитария (если мы выносим апстримные исходники в > отдельный бранч) является такая: > > $ 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.
next prev parent reply other threads:[~2008-04-07 11:04 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2008-04-07 10:18 Eugene Prokopiev 2008-04-07 11:04 ` Damir Shayhutdinov [this message] 2008-04-07 11:24 ` Eugene Prokopiev 2008-04-07 11:34 ` Damir Shayhutdinov 2008-04-07 11:52 ` Dmitry V. Levin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=679044850804070404t52b5208cled3eadc07de2b33a@mail.gmail.com \ --to=damir@altlinux.org \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git