git/SomeDestReposViaBranches

Материал из ALT Linux Wiki

< Git(Различия между версиями)
Перейти к: навигация, поиск
(Import from freesource.info)
м (+категория)
 
(5 промежуточных версий не показаны.)
Строка 1: Строка 1:
-
[[Category:Devel]]
+
{{DISPLAYTITLE:git/SomeDestReposViaBranches}}
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches}}
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches}}
 +
== Поддержка пакета для нескольких apt-репозиториев  с помощью бранчей git в картинках ==
-
== Поддержка пакета для нескольких apt-репозитариев  с помощью бранчей git в картинках ==
+
{| class="standard"
-
 
+
-
{| border="1"
+
|-
|-
-
|
+
!Действия
-
Действия
+
!Команды
-
|
+
!Результат в gitk --all
-
Команды
+
-
|
+
-
Результат в gitk --all
+
|-
|-
 +
|Создание репозитория
|
|
-
Создание репозитария
+
$ mkdir ser2net
 +
$ cd ser2net
 +
$ git init-db
|
|
-
$ mkdir ser2net
 
-
$ cd ser2net
 
-
$ git init-db
 
-
|
 
-
 
|-
|-
 +
|Создание и сохранение в бранче master файла .gear/rules, описывающего правила построения srpm
|
|
-
Создание и сохранение в бранче master файла .gear/rules, описывающего правила построения srpm
+
$ mkdir .gear
-
|
+
$ echo 'copy: *.init
-
$ mkdir .gear
+
tar: ser2net' > .gear/rules
-
$ cat > .gear/rules << EOF &gt; copy: *.init &gt; tar: ser2net &gt; EOF
+
$ git add .
-
$ git add .
+
$ git commit -m 'Initial commit'
-
$ git commit -m 'Initial commit'
+
|[[Image:0.png]]
-
|
+
-
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=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
+
-
|
+
-
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=1.png
+
|-
|-
 +
|Загрузка исходного кода в бранч upstream
|
|
-
Загрузка исходного кода в бранч 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
+
-
|
+
-
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=2.png
+
|-
|-
 +
|Создание спека и инитскрипта в бранче srpm
|
|
-
Создание спека и инитскрипта в бранче 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'
+
-
|
+
-
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=3.png
+
|-
|-
 +
|Объединение бранчей srpm и upstream, правка спека, создание пакета для Sisyphus
|
|
-
Объединение бранчей 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]]
-
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=4.png
+
|-
|-
 +
|Объединение бранчей srpm-4.0 и srpm, правка спека, создание пакета для branch/4.0
|
|
-
Объединение бранчей 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]]
-
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 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
+
-
|
+
-
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=6.png
+
|-
|-
 +
|Объединение бранчей srpm и upstream, правка спека, создание новой версии пакета для Sisyphus
|
|
-
Объединение бранчей 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]]
-
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=7.png
+
|-
|-
 +
|Объединение бранчей srpm и upstream, правка спека, создание новой версии пакета для branch/4.0
|
|
-
Объединение бранчей 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]]
-
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=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

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
$ echo 'copy: *.init
tar: ser2net' > .gear/rules
$ git add .
$ git commit -m 'Initial commit'
0.png
Создание дополнительных бранчей
$ git branch upstream
$ git branch srpm
$ git branch srpm-4.0
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
2.png
Создание спека и инитскрипта в бранче srpm
$ git checkout srpm
$ vim ser2net.init
$ vim ser2net.spec
$ git add .
$ git commit -m 'Initial spec and initscript'
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/
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/
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
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/
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/
8.png

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


 
Личные инструменты