Git/SomeDestReposViaBranches
Материал из ALT Linux Wiki
(Import from freesource.info) |
|||
Строка 16: | Строка 16: | ||
Создание репозитария | Создание репозитария | ||
| | | | ||
- | $ mkdir ser2net | + | $ mkdir ser2net |
- | $ cd ser2net | + | $ cd ser2net |
- | $ git init-db | + | $ git init-db |
| | | | ||
Строка 25: | Строка 25: | ||
Создание и сохранение в бранче master файла .gear/rules, описывающего правила построения srpm | Создание и сохранение в бранче master файла .gear/rules, описывающего правила построения srpm | ||
| | | | ||
- | $ mkdir .gear | + | $ mkdir .gear |
- | $ | + | $ echo 'copy: *.init |
- | $ git add . | + | tar: ser2net' > .gear/rules |
- | $ git commit -m 'Initial commit' | + | $ git add . |
+ | $ git commit -m 'Initial commit' | ||
| | | | ||
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=0.png | http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=0.png | ||
Строка 35: | Строка 36: | ||
Создание дополнительных бранчей | Создание дополнительных бранчей | ||
| | | | ||
- | $ git branch upstream | + | $ git branch upstream |
- | $ git branch srpm | + | $ git branch srpm |
- | $ git branch srpm-4.0 | + | $ git branch srpm-4.0 |
| | | | ||
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=1.png | http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=1.png | ||
Строка 44: | Строка 45: | ||
Загрузка исходного кода в бранч upstream | Загрузка исходного кода в бранч upstream | ||
| | | | ||
- | $ git checkout upstream | + | $ git checkout upstream |
- | $ cp /download/ser2net-2.3.tar.gz . | + | $ cp /download/ser2net-2.3.tar.gz . |
- | $ tar -zxf ser2net-2.3.tar.gz | + | $ tar -zxf ser2net-2.3.tar.gz |
- | $ rm -f ser2net-2.3.tar.gz | + | $ rm -f ser2net-2.3.tar.gz |
- | $ mv ser2net-2.3 ser2net | + | $ mv ser2net-2.3 ser2net |
- | $ git add . | + | $ git add . |
- | $ git commit -m 'Upstream initial commit' | + | $ git commit -m 'Upstream initial commit' |
- | $ git tag ser2net-2.3 | + | $ git tag ser2net-2.3 |
| | | | ||
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=2.png | http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=2.png | ||
Строка 58: | Строка 59: | ||
Создание спека и инитскрипта в бранче srpm | Создание спека и инитскрипта в бранче srpm | ||
| | | | ||
- | $ git checkout srpm | + | $ git checkout srpm |
- | $ vim ser2net.init | + | $ vim ser2net.init |
- | $ vim ser2net.spec | + | $ vim ser2net.spec |
- | $ git add . | + | $ git add . |
- | $ git commit -m 'Initial spec and initscript' | + | $ git commit -m 'Initial spec and initscript' |
| | | | ||
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=3.png | http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=3.png | ||
Строка 69: | Строка 70: | ||
Объединение бранчей srpm и upstream, правка спека, создание пакета для Sisyphus | Объединение бранчей srpm и upstream, правка спека, создание пакета для Sisyphus | ||
| | | | ||
- | $ git checkout srpm | + | $ git checkout srpm |
- | $ git merge ser2net-2.3 | + | $ git merge ser2net-2.3 |
- | $ vim ser2net.spec # меняем release | + | $ vim ser2net.spec # меняем release |
- | $ add_changelog ser2net.spec | + | $ add_changelog ser2net.spec |
- | $ vim ser2net.spec # пишем changelog | + | $ vim ser2net.spec # пишем changelog |
- | $ gear --commit --hasher -- hsh # тестируем | + | $ gear --commit --hasher -- hsh # тестируем |
- | $ git commit -a -m 'First build for Sisyphus' | + | $ git commit -a -m 'First build for Sisyphus' |
- | $ git tag srpm-ser2net-2.3 | + | $ git tag srpm-ser2net-2.3 |
- | $ gear --rpmbuild -- rpm -bs --sign --nodeps | + | $ 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/ | + | $ 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 | http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=4.png | ||
Строка 85: | Строка 86: | ||
Объединение бранчей srpm-4.0 и srpm, правка спека, создание пакета для branch/4.0 | Объединение бранчей srpm-4.0 и srpm, правка спека, создание пакета для branch/4.0 | ||
| | | | ||
- | $ git checkout srpm-4.0 | + | $ git checkout srpm-4.0 |
- | $ git merge srpm-ser2net-2.3 | + | $ git merge srpm-ser2net-2.3 |
- | $ vim ser2net.spec # меняем release | + | $ vim ser2net.spec # меняем release |
- | $ add_changelog ser2net.spec | + | $ add_changelog ser2net.spec |
- | $ vim ser2net.spec # пишем changelog | + | $ vim ser2net.spec # пишем changelog |
- | $ gear --commit --hasher -- hsh # тестируем | + | $ gear --commit --hasher -- hsh # тестируем |
- | $ git commit -a -m 'Backport to branch/4.0' | + | $ git commit -a -m 'Backport to branch/4.0' |
- | $ git tag srpm-4.0-ser2net-2.3 | + | $ git tag srpm-4.0-ser2net-2.3 |
- | $ gear --rpmbuild -- rpm -bs --sign --nodeps | + | $ 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/ | + | $ 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 | http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=5.png | ||
Строка 101: | Строка 102: | ||
Обновление исходного кода из апстрима | Обновление исходного кода из апстрима | ||
| | | | ||
- | $ git checkout upstream | + | $ git checkout upstream |
- | $ gear-update /download/ser2net-2.4.tar.gz ser2net | + | $ gear-update /download/ser2net-2.4.tar.gz ser2net |
- | $ git commit -a -m 'Upstream update' | + | $ git commit -a -m 'Upstream update' |
- | $ git tag ser2net-2.4 | + | $ git tag ser2net-2.4 |
| | | | ||
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=6.png | http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=6.png | ||
Строка 111: | Строка 112: | ||
Объединение бранчей srpm и upstream, правка спека, создание новой версии пакета для Sisyphus | Объединение бранчей srpm и upstream, правка спека, создание новой версии пакета для Sisyphus | ||
| | | | ||
- | $ git checkout srpm | + | $ git checkout srpm |
- | $ git merge ser2net-2.4 | + | $ git merge ser2net-2.4 |
- | $ vim ser2net.spec # меняем release | + | $ vim ser2net.spec # меняем release |
- | $ add_changelog ser2net.spec | + | $ add_changelog ser2net.spec |
- | $ vim ser2net.spec # пишем changelog | + | $ vim ser2net.spec # пишем changelog |
- | $ gear --commit --hasher -- hsh # тестируем | + | $ gear --commit --hasher -- hsh # тестируем |
- | $ git commit -a -m 'new version' | + | $ git commit -a -m 'new version' |
- | $ git tag srpm-ser2net-2.4 | + | $ git tag srpm-ser2net-2.4 |
- | $ gear --rpmbuild -- rpm -bs --sign --nodeps | + | $ 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/ | + | $ 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 | http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=7.png | ||
Строка 127: | Строка 128: | ||
Объединение бранчей srpm и upstream, правка спека, создание новой версии пакета для branch/4.0 | Объединение бранчей srpm и upstream, правка спека, создание новой версии пакета для branch/4.0 | ||
| | | | ||
- | $ git checkout srpm-4.0 | + | $ git checkout srpm-4.0 |
- | $ git merge srpm-ser2net-2.4 | + | $ git merge srpm-ser2net-2.4 |
- | $ vim ser2net.spec # меняем release | + | $ vim ser2net.spec # меняем release |
- | $ add_changelog ser2net.spec | + | $ add_changelog ser2net.spec |
- | $ vim ser2net.spec # пишем changelog | + | $ vim ser2net.spec # пишем changelog |
- | $ gear --commit --hasher -- hsh # тестируем | + | $ gear --commit --hasher -- hsh # тестируем |
- | $ git commit -a -m 'new backport to branch/4.0' | + | $ git commit -a -m 'new backport to branch/4.0' |
- | $ git tag srpm-4.0-ser2net-2.4 | + | $ git tag srpm-4.0-ser2net-2.4 |
- | $ gear --rpmbuild -- rpm -bs --sign --nodeps | + | $ 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/ | + | $ 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 | http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=8.png |
Версия 01:26, 21 августа 2008
Поддержка пакета для нескольких apt-репозитариев с помощью бранчей git в картинках
Действия |
Команды |
Результат в gitk --all |
Создание репозитария |
$ mkdir ser2net $ cd ser2net $ git init-db | |
Создание и сохранение в бранче master файла .gear/rules, описывающего правила построения srpm |
$ mkdir .gear $ echo 'copy: *.init tar: ser2net' > .gear/rules $ 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^ можно указать другой коммит, явно или косвенно.