Git/SomeDestReposViaBranches: различия между версиями

Материал из ALT Linux Wiki
< Git
Нет описания правки
Нет описания правки
Строка 31: Строка 31:
  $ git commit -m 'Initial commit'
  $ git commit -m 'Initial commit'
|
|
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=0.png
[[Image:0.png]]
|-
|-
|
|
Строка 40: Строка 40:
  $ git branch srpm-4.0
  $ git branch srpm-4.0
|
|
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=1.png
[[Image:1.png]]
|-
|-
|
|
Строка 54: Строка 54:
  $ git tag ser2net-2.3
  $ git tag ser2net-2.3
|
|
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=2.png
[[Image:2.png]]
|-
|-
|
|
Строка 65: Строка 65:
  $ 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
[[Image:3.png]]
|-
|-
|
|
Строка 81: Строка 81:
  $ 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
[[Image:4.png]]
|-
|-
|
|
Строка 97: Строка 97:
  $ 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
[[Image:5.png]]
|-
|-
|
|
Строка 107: Строка 107:
  $ git tag ser2net-2.4
  $ git tag ser2net-2.4
|
|
http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/SomeDestReposViaBranches/files?get=6.png
[[Image:6.png]]
|-
|-
|
|
Строка 123: Строка 123:
  $ 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
[[Image:7.png]]
|-
|-
|
|
Строка 139: Строка 139:
  $ 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
[[Image:8.png]]
|}
|}




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

Версия от 01:30, 21 августа 2008

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^ можно указать другой коммит, явно или косвенно.