Git/SomeDestReposViaBranches

Материал из ALT Linux Wiki
< Git
Версия от 16:05, 28 июля 2008; VladimirKamarzin (обсуждение | вклад) (Import from freesource.info)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Поддержка пакета для нескольких apt-репозитариев с помощью бранчей git в картинках

Действия

Команды

Результат в gitk --all

Создание репозитария

$ mkdir ser2net $ cd ser2net $ git init-db

Создание и сохранение в бранче master файла .gear/rules, описывающего правила построения srpm

$ mkdir .gear $ cat > .gear/rules << EOF > copy: *.init > tar: ser2net > EOF $ git add . $ git commit -m 'Initial commit'

http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=0.png

Создание дополнительных бранчей

$ git branch upstream $ git branch srpm $ git branch srpm-4.0

http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=1.png

Загрузка исходного кода в бранч upstream

$ git checkout upstream $ cp /download/ser2net-2.3.tar.gz . $ tar -zxf ser2net-2.3.tar.gz $ rm -f ser2net-2.3.tar.gz $ mv ser2net-2.3 ser2net $ git add . $ git commit -m 'Upstream initial commit' $ git tag ser2net-2.3

http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=2.png

Создание спека и инитскрипта в бранче srpm

$ git checkout srpm $ vim ser2net.init $ vim ser2net.spec $ git add . $ git commit -m 'Initial spec and initscript'

http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=3.png

Объединение бранчей srpm и upstream, правка спека, создание пакета для Sisyphus

$ git checkout srpm $ git merge ser2net-2.3 $ vim ser2net.spec # меняем release $ add_changelog ser2net.spec $ vim ser2net.spec # пишем changelog $ gear --commit --hasher -- hsh # тестируем $ git commit -a -m 'First build for Sisyphus' $ git tag srpm-ser2net-2.3 $ gear --rpmbuild -- rpm -bs --sign --nodeps $ rsync -va --partial --stats --delete-after -e ssh /RPM/SRPMS/ser2net-2.3-alt1.src.rpm devel:/incoming/Sisyphus/

http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=4.png

Объединение бранчей srpm-4.0 и srpm, правка спека, создание пакета для branch/4.0

$ git checkout srpm-4.0 $ git merge srpm-ser2net-2.3 $ vim ser2net.spec # меняем release $ add_changelog ser2net.spec $ vim ser2net.spec # пишем changelog $ gear --commit --hasher -- hsh # тестируем $ git commit -a -m 'Backport to branch/4.0' $ git tag srpm-4.0-ser2net-2.3 $ gear --rpmbuild -- rpm -bs --sign --nodeps $ rsync -va --partial --stats --delete-after -e ssh /RPM/SRPMS/ser2net-2.3-alt0.M40.src.rpm devel:/incoming/updates/4.0/

http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=5.png

Обновление исходного кода из апстрима

$ git checkout upstream $ gear-update /download/ser2net-2.4.tar.gz ser2net $ git commit -a -m 'Upstream update' $ git tag ser2net-2.4

http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=6.png

Объединение бранчей srpm и upstream, правка спека, создание новой версии пакета для Sisyphus

$ git checkout srpm $ git merge ser2net-2.4 $ vim ser2net.spec # меняем release $ add_changelog ser2net.spec $ vim ser2net.spec # пишем changelog $ gear --commit --hasher -- hsh # тестируем $ git commit -a -m 'new version' $ git tag srpm-ser2net-2.4 $ gear --rpmbuild -- rpm -bs --sign --nodeps $ rsync -va --partial --stats --delete-after -e ssh /RPM/SRPMS/ser2net-2.4-alt1.src.rpm devel:/incoming/Sisyphus/

http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=7.png

Объединение бранчей srpm и upstream, правка спека, создание новой версии пакета для branch/4.0

$ git checkout srpm-4.0 $ git merge srpm-ser2net-2.4 $ vim ser2net.spec # меняем release $ add_changelog ser2net.spec $ vim ser2net.spec # пишем changelog $ gear --commit --hasher -- hsh # тестируем $ git commit -a -m 'new backport to branch/4.0' $ git tag srpm-4.0-ser2net-2.4 $ gear --rpmbuild -- rpm -bs --sign --nodeps $ rsync -va --partial --stats --delete-after -e ssh /RPM/SRPMS/ser2net-2.4-alt0.M40.src.rpm devel:/incoming/updates/4.0/

http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=8.png


Если вы сделали коммит, о котором потом пожалели, можно откатиться с помощью git reset --hard HEAD^. Если --hard заменить на --soft, то изменения, сделанные в удаленном коммите, останутся в файлах, но окажутся незакоммиченными. Аналогично вместо HEAD^ можно указать другой коммит, явно или косвенно.