Git/start3: различия между версиями

Материал из ALT Linux Wiki
< Git
м (git checkout --orphan)
м (важное замечание)
 
Строка 1: Строка 1:
{{stub}}
{{stub}}
[[Category:git]]
[[Category:git]]
{{note|от такого варианта меня '''отговорил {{man|mithraen}}''', поскольку он и впрямь неудобен с точки зрения "заглянуть стороннему разработчику с целью что-либо поправить": вместо того, чтобы сразу увидеть код, человек видит лишь спек и, возможно, патчи/ресурсы -- прежде чем что-либо делать, приходится разыскивать, где же собственно исходники (особенно если майнтейнер не потрудился воспользоваться [[altlinux.org/Знакомство_со_схемой_упаковки_pam-pkcs11#gear-restore-tags|{{cmd|gear-store-tags}}]]) --[[Участник:MichaelShigorin|mike]] ([[Обсуждение участника:MichaelShigorin|обсуждение]]) 11:49, 23 декабря 2023 (UTC)}}


== пример сборки пакета из апстримного git ==
== пример сборки пакета из апстримного git ==

Текущая версия от 14:49, 23 декабря 2023

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Примечание: от такого варианта меня отговорил mithraen@, поскольку он и впрямь неудобен с точки зрения "заглянуть стороннему разработчику с целью что-либо поправить": вместо того, чтобы сразу увидеть код, человек видит лишь спек и, возможно, патчи/ресурсы -- прежде чем что-либо делать, приходится разыскивать, где же собственно исходники (особенно если майнтейнер не потрудился воспользоваться gear-store-tags) --mike (обсуждение) 11:49, 23 декабря 2023 (UTC)


пример сборки пакета из апстримного git

Имеется git://github.com/sandrods/odf-report.git, который охота упаковать. Там просто master, тагов пока не наблюдается.

mkdir odf-report
cd odf-report
git init
git-empty-branch master
git fetch git://github.com/sandrods/odf-report master:upstream
git checkout upstream
git log
git tag -am 0.1.3 0.1.3
git checkout master
mkdir .gear
echo 'tar: @version@:. name=odf-report-@version@' > .gear/rules
git add .gear/rules
git commit -m 'initial .gear/rules' .gear/rules
# git-empty-branch позволил сделать чистый master без файлов,
# но теперь нам понадобится общая история => fake merge
git merge -s ours upstream
# берём что-нить похожее и правим
cp -a ~/git/ruby-zip/ruby-zip.spec ruby-odf-report.spec
vim ruby-odf-report.spec
git add ruby-odf-report.spec
# gear-update-tag хочет хоть какой-то спек
gear-update-tag -avc
git commit -m 'gear-update-tag' .gear/tags/
# теперь опять к спеку -- gear-commit его "не видит" без временного коммита
git commit -m tmp *.spec
gear-commit -a --amend
# зацикливаемся
nice time gear --hasher -- hsh ~/hasher
vim ruby-odf-report.spec
git add ruby-odf-report.spec
gear-commit -a --amend
# готово, расцикливаемся -- на самом деле вместо сразу --amend;
# бывает удобней наделать временных коммитов, чтоб хоть ход мысли
# фиксировался, а потом git reset --soft на последний перед ними,
# git status и скопом все правки спека одним gear-commit -a;
# когда собралось, ставим подписанный релизный таг
gear-create-tag
# вместо git push --all/--tags руками
sudo apt-get install girar-utils
girar-upload

NB: вместо git-empty-branch давно можно применять git checkout --orphan (спасибо glebfm@ за подсказку).

Ссылки

Файл:Git-empty-branch.sh