Git/SomeDestReposViaBranches: различия между версиями
< Git
(Import from freesource.info) |
м (+категория) |
||
(не показано 5 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:git/SomeDestReposViaBranches}} | |||
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches}} | {{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches}} | ||
== Поддержка пакета для нескольких apt-репозиториев с помощью бранчей git в картинках == | |||
{| class="standard" | |||
{| | |||
|- | |- | ||
!Действия | |||
Действия | !Команды | ||
!Результат в gitk --all | |||
Команды | |||
Результат в gitk --all | |||
|- | |- | ||
|Создание репозитория | |||
| | | | ||
$ mkdir ser2net | |||
$ cd ser2net | |||
$ git init-db | |||
| | | | ||
|- | |- | ||
|Создание и сохранение в бранче master файла .gear/rules, описывающего правила построения srpm | |||
| | | | ||
$ mkdir .gear | |||
$ echo 'copy: *.init | |||
$ mkdir .gear | tar: ser2net' > .gear/rules | ||
$ | $ git add . | ||
$ git add . | $ git commit -m 'Initial commit' | ||
$ git commit -m 'Initial commit' | |[[Image:0.png]] | ||
| | |||
|- | |- | ||
|Создание дополнительных бранчей | |||
| | | | ||
$ git branch upstream | |||
$ git branch srpm | |||
$ git branch upstream | $ git branch srpm-4.0 | ||
$ git branch srpm | |[[Image:1.png]] | ||
$ git branch srpm-4.0 | |||
| | |||
|- | |- | ||
|Загрузка исходного кода в бранч upstream | |||
| | | | ||
$ git checkout upstream | |||
$ cp /download/ser2net-2.3.tar.gz . | |||
$ git checkout upstream | $ tar -zxf ser2net-2.3.tar.gz | ||
$ cp /download/ser2net-2.3.tar.gz . | $ rm -f ser2net-2.3.tar.gz | ||
$ tar -zxf ser2net-2.3.tar.gz | $ mv ser2net-2.3 ser2net | ||
$ rm -f ser2net-2.3.tar.gz | $ git add . | ||
$ mv ser2net-2.3 ser2net | $ git commit -m 'Upstream initial commit' | ||
$ git add . | $ git tag ser2net-2.3 | ||
$ git commit -m 'Upstream initial commit' | |[[Image:2.png]] | ||
$ git tag ser2net-2.3 | |||
| | |||
|- | |- | ||
|Создание спека и инитскрипта в бранче srpm | |||
| | | | ||
$ git checkout srpm | |||
$ vim ser2net.init | |||
$ git checkout srpm | $ vim ser2net.spec | ||
$ vim ser2net.init | $ git add . | ||
$ vim ser2net.spec | $ git commit -m 'Initial spec and initscript' | ||
$ git add . | |[[Image:3.png]] | ||
$ git commit -m 'Initial spec and initscript' | |||
| | |||
|- | |- | ||
|Объединение бранчей srpm и upstream, правка спека, создание пакета для Sisyphus | |||
| | | | ||
$ git checkout srpm | |||
$ git merge ser2net-2.3 | |||
$ git checkout srpm | $ vim ser2net.spec # меняем release | ||
$ git merge ser2net-2.3 | $ add_changelog ser2net.spec | ||
$ vim ser2net.spec # меняем release | $ vim ser2net.spec # пишем changelog | ||
$ add_changelog ser2net.spec | $ gear --commit --hasher -- hsh # тестируем | ||
$ vim ser2net.spec # пишем changelog | $ git commit -a -m 'First build for Sisyphus' | ||
$ gear --commit --hasher -- hsh # тестируем | $ git tag srpm-ser2net-2.3 | ||
$ git commit -a -m 'First build for Sisyphus' | $ gear --rpmbuild -- rpm -bs --sign --nodeps | ||
$ git tag srpm-ser2net-2.3 | $ rsync -va --partial --stats --delete-after \ | ||
$ gear --rpmbuild -- rpm -bs --sign --nodeps | -e ssh /RPM/SRPMS/ser2net-2.3-alt1.src.rpm \ | ||
$ rsync -va --partial --stats --delete-after -e ssh /RPM/SRPMS/ser2net-2.3-alt1.src.rpm devel:/incoming/Sisyphus/ | devel:/incoming/Sisyphus/ | ||
| | |[[Image:4.png]] | ||
|- | |- | ||
|Объединение бранчей srpm-4.0 и srpm, правка спека, создание пакета для branch/4.0 | |||
| | | | ||
$ git checkout srpm-4.0 | |||
$ git merge srpm-ser2net-2.3 | |||
$ git checkout srpm-4.0 | $ vim ser2net.spec # меняем release | ||
$ git merge srpm-ser2net-2.3 | $ add_changelog ser2net.spec | ||
$ vim ser2net.spec # меняем release | $ vim ser2net.spec # пишем changelog | ||
$ add_changelog ser2net.spec | $ gear --commit --hasher -- hsh # тестируем | ||
$ vim ser2net.spec # пишем changelog | $ git commit -a -m 'Backport to branch/4.0' | ||
$ gear --commit --hasher -- hsh # тестируем | $ git tag srpm-4.0-ser2net-2.3 | ||
$ git commit -a -m 'Backport to branch/4.0' | $ gear --rpmbuild -- rpm -bs --sign --nodeps | ||
$ git tag srpm-4.0-ser2net-2.3 | $ rsync -va --partial --stats --delete-after \ | ||
$ gear --rpmbuild -- rpm -bs --sign --nodeps | -e ssh /RPM/SRPMS/ser2net-2.3-alt0.M40.src.rpm \ | ||
$ rsync -va --partial --stats --delete-after -e ssh /RPM/SRPMS/ser2net-2.3-alt0.M40.src.rpm devel:/incoming/updates/4.0/ | devel:/incoming/updates/4.0/ | ||
| | |[[Image:5.png]] | ||
|- | |- | ||
|Обновление исходного кода из апстрима | |||
| | | | ||
$ git checkout upstream | |||
$ gear-update /download/ser2net-2.4.tar.gz ser2net | |||
$ git checkout upstream | $ git commit -a -m 'Upstream update' | ||
$ gear-update /download/ser2net-2.4.tar.gz ser2net | $ git tag ser2net-2.4 | ||
$ git commit -a -m 'Upstream update' | |[[Image:6.png]] | ||
$ git tag ser2net-2.4 | |||
| | |||
|- | |- | ||
|Объединение бранчей srpm и upstream, правка спека, создание новой версии пакета для Sisyphus | |||
| | | | ||
$ git checkout srpm | |||
$ git merge ser2net-2.4 | |||
$ git checkout srpm | $ vim ser2net.spec # меняем release | ||
$ git merge ser2net-2.4 | $ add_changelog ser2net.spec | ||
$ vim ser2net.spec # меняем release | $ vim ser2net.spec # пишем changelog | ||
$ add_changelog ser2net.spec | $ gear --commit --hasher -- hsh # тестируем | ||
$ vim ser2net.spec # пишем changelog | $ git commit -a -m 'new version' | ||
$ gear --commit --hasher -- hsh # тестируем | $ git tag srpm-ser2net-2.4 | ||
$ git commit -a -m 'new version' | $ gear --rpmbuild -- rpm -bs --sign --nodeps | ||
$ git tag srpm-ser2net-2.4 | $ rsync -va --partial --stats --delete-after \ | ||
$ gear --rpmbuild -- rpm -bs --sign --nodeps | -e ssh /RPM/SRPMS/ser2net-2.4-alt1.src.rpm \ | ||
$ rsync -va --partial --stats --delete-after -e ssh /RPM/SRPMS/ser2net-2.4-alt1.src.rpm devel:/incoming/Sisyphus/ | devel:/incoming/Sisyphus/ | ||
| | |[[Image:7.png]] | ||
|- | |- | ||
|Объединение бранчей srpm и upstream, правка спека, создание новой версии пакета для branch/4.0 | |||
| | | | ||
$ git checkout srpm-4.0 | |||
$ git merge srpm-ser2net-2.4 | |||
$ git checkout srpm-4.0 | $ vim ser2net.spec # меняем release | ||
$ git merge srpm-ser2net-2.4 | $ add_changelog ser2net.spec | ||
$ vim ser2net.spec # меняем release | $ vim ser2net.spec # пишем changelog | ||
$ add_changelog ser2net.spec | $ gear --commit --hasher -- hsh # тестируем | ||
$ vim ser2net.spec # пишем changelog | $ git commit -a -m 'new backport to branch/4.0' | ||
$ gear --commit --hasher -- hsh # тестируем | $ git tag srpm-4.0-ser2net-2.4 | ||
$ git commit -a -m 'new backport to branch/4.0' | $ gear --rpmbuild -- rpm -bs --sign --nodeps | ||
$ git tag srpm-4.0-ser2net-2.4 | $ rsync -va --partial --stats --delete-after \ | ||
$ gear --rpmbuild -- rpm -bs --sign --nodeps | -e ssh /RPM/SRPMS/ser2net-2.4-alt0.M40.src.rpm \ | ||
$ rsync -va --partial --stats --delete-after -e ssh /RPM/SRPMS/ser2net-2.4-alt0.M40.src.rpm devel:/incoming/updates/4.0/ | devel:/incoming/updates/4.0/ | ||
| | |[[Image:8.png]] | ||
|} | |} | ||
Если вы сделали коммит, о котором потом пожалели, можно откатиться с помощью git reset --hard HEAD^. Если --hard заменить на --soft, то изменения, сделанные в удаленном коммите, останутся в файлах, но окажутся незакоммиченными. Аналогично вместо HEAD^ можно указать другой коммит, явно или косвенно. | |||
{{Category navigation|title=git|category=git|sortkey={{SUBPAGENAME}}}} | |||
{{Category navigation|title=gear|category=gear|sortkey=*}} |
Текущая версия от 01:12, 19 февраля 2015
Поддержка пакета для нескольких apt-репозиториев с помощью бранчей git в картинках
Если вы сделали коммит, о котором потом пожалели, можно откатиться с помощью git reset --hard HEAD^. Если --hard заменить на --soft, то изменения, сделанные в удаленном коммите, останутся в файлах, но окажутся незакоммиченными. Аналогично вместо HEAD^ можно указать другой коммит, явно или косвенно.