git/SomeDestReposViaBranches
Материал из ALT Linux Wiki
< Git(Различия между версиями)
(Import from freesource.info) |
м (+категория) |
||
(5 промежуточных версий не показаны.) | |||
Строка 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^ можно указать другой коммит, явно или косвенно. | Если вы сделали коммит, о котором потом пожалели, можно откатиться с помощью git reset --hard HEAD^. Если --hard заменить на --soft, то изменения, сделанные в удаленном коммите, останутся в файлах, но окажутся незакоммиченными. Аналогично вместо HEAD^ можно указать другой коммит, явно или косвенно. | ||
+ | |||
+ | |||
+ | {{Category navigation|title=git|category=git|sortkey={{SUBPAGENAME}}}} | ||
+ | {{Category navigation|title=gear|category=gear|sortkey=*}} |
Текущая версия на 22:12, 18 февраля 2015
Поддержка пакета для нескольких apt-репозиториев с помощью бранчей git в картинках
Если вы сделали коммит, о котором потом пожалели, можно откатиться с помощью git reset --hard HEAD^. Если --hard заменить на --soft, то изменения, сделанные в удаленном коммите, останутся в файлах, но окажутся незакоммиченными. Аналогично вместо HEAD^ можно указать другой коммит, явно или косвенно.