Git/start2: различия между версиями
< Git
Asy (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показано 7 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
{{stub}} | |||
Пример переноса пакета на git.alt на примере | {{Устарело}} | ||
Пример переноса пакета на git.alt на примере libunrar3. Предполагается, что доступ уже настроен. | |||
* создаём где-нибудь какой-нибудь каталог, где будут храниться репозитарии, например ~/RPM/GIT и переходим в него. | * создаём где-нибудь какой-нибудь каталог, где будут храниться репозитарии, например ~/RPM/GIT и переходим в него. | ||
* выполняем <tt>git clone git.alt:/archive/ | * выполняем <tt>git clone git.alt:/archive/l/libunrar3</tt>. В результате получим репозитарий libunrar3 из хранилища пакетов, которые ещё ни разу не собирались через git.alt | ||
* переходим в каталог | * переходим в каталог <tt>libunrar3</tt>. (отдельный момент: в каталоге <tt>libunrar3/.git</tt> находится вся информация по репозитарию, включая копии файлов дерева исходников; мне понимание этого несколько помогло) | ||
* <tt>git branch</tt> - выводит список веток. Сейчас там только sisyphus, так как пакет из git.alt:/archive | * <tt>git branch</tt> - выводит список веток. Сейчас там только <tt>sisyphus</tt>, так как пакет из <tt>git.alt:/archive</tt> | ||
* создаём репозитарий на git.alt: | * создаём репозитарий на git.alt: | ||
ssh git.alt init-db | ssh git.alt init-db libunrar3 | ||
* репозитарий в git.alt:/archive больше не пригодится. Удаляем его из настроек git и добавляем вместо него только что созданный: | * репозитарий в <tt>git.alt:/archive</tt> больше не пригодится. Удаляем его из настроек git и добавляем вместо него только что созданный: | ||
git remote rm origin | git remote rm origin | ||
git remote add origin ssh://git.alt/people/asy/packages/ | git remote add origin ssh://git.alt/people/asy/packages/libunrar3.git | ||
* <tt>git branch master</tt> - создаём ветку master. | * <tt>git branch master</tt> - создаём ветку master. | ||
* в принципе, уже можно перенести репозитарий на git.alt: | * в принципе, уже можно перенести репозитарий на git.alt: | ||
git push --all | git push --all | ||
* можно попробовать собрать пакет: | |||
gear-rpm -ba libunrar3.spec | |||
Больше, в общем-то, делать нечего, так как это пакет той же версии, что и в Sisyphus. Теперь сделаем обновление. В случае libunrar3 работаем c тарболом. | |||
* переключаемся, допстим, на ветку master | |||
git checkout master | |||
* находясь в ~/RPM/GIT/libunrar3, выполняем (каталог внутри unrarsrc не совпадает с названием тарбола): | |||
gear-update ../unrarsrc-3.8.5.tar.gz unrar | |||
* удаляем некоторые ненужные файлы: | |||
git rm unrar-3.5.3_fix.patch | |||
* добавляем некоторые нужные файлы: | |||
git add unrar-3.8.5_fix.patch | |||
* правим что надо, spec в частности, после чего коммитим изменения: | |||
git commit -a -m "New version" | |||
* На самом деле, перед коммитом не плохо бы попробовать собрать пакет. Для этого можно воспользоваться утилитой из etersoft-build-utils (gear-rpm соберёт правильно только после git commit, что может оказаться не удобно): | |||
rpmbb libunrar3.spec | |||
* выполняя поочерёдно <tt>git checkout master</tt> и <tt>git checkout sisyphus</tt>, можно наблюдать, как меняются местами два дерева исходников. | |||
* После проверок можно смержить sisyphus c master | |||
git checkout sisyphus | |||
git merge master | |||
* синхронизируем git.alt с локальным репозитарием: | |||
git push --all | |||
Апдейт пакета сделан, пора готовить задание на сборку. Решаем, что в Сизиф собираем ветку sisyphus. | |||
* Вывод команд не приводися. | |||
git checkout sisyphus | |||
git tag -s -m "libunrar3-3.8.5-alt1" libunrar3-3.8.5-alt1 | |||
git push origin --tags | |||
ssh git.alt build packages/libunrar3 libunrar3-3.8.5-alt1 | |||
Ну вот, очередная версия пакета собрана в Sisyphus через git.alt. Если, конечно, там ошибок не получится. | |||
{{Category navigation|title=git|category=git|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=git|category=git|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 16:55, 21 декабря 2023
Пример переноса пакета на git.alt на примере libunrar3. Предполагается, что доступ уже настроен.
- создаём где-нибудь какой-нибудь каталог, где будут храниться репозитарии, например ~/RPM/GIT и переходим в него.
- выполняем git clone git.alt:/archive/l/libunrar3. В результате получим репозитарий libunrar3 из хранилища пакетов, которые ещё ни разу не собирались через git.alt
- переходим в каталог libunrar3. (отдельный момент: в каталоге libunrar3/.git находится вся информация по репозитарию, включая копии файлов дерева исходников; мне понимание этого несколько помогло)
- git branch - выводит список веток. Сейчас там только sisyphus, так как пакет из git.alt:/archive
- создаём репозитарий на git.alt:
ssh git.alt init-db libunrar3
- репозитарий в git.alt:/archive больше не пригодится. Удаляем его из настроек git и добавляем вместо него только что созданный:
git remote rm origin git remote add origin ssh://git.alt/people/asy/packages/libunrar3.git
- git branch master - создаём ветку master.
- в принципе, уже можно перенести репозитарий на git.alt:
git push --all
- можно попробовать собрать пакет:
gear-rpm -ba libunrar3.spec
Больше, в общем-то, делать нечего, так как это пакет той же версии, что и в Sisyphus. Теперь сделаем обновление. В случае libunrar3 работаем c тарболом.
- переключаемся, допстим, на ветку master
git checkout master
- находясь в ~/RPM/GIT/libunrar3, выполняем (каталог внутри unrarsrc не совпадает с названием тарбола):
gear-update ../unrarsrc-3.8.5.tar.gz unrar
- удаляем некоторые ненужные файлы:
git rm unrar-3.5.3_fix.patch
- добавляем некоторые нужные файлы:
git add unrar-3.8.5_fix.patch
- правим что надо, spec в частности, после чего коммитим изменения:
git commit -a -m "New version"
- На самом деле, перед коммитом не плохо бы попробовать собрать пакет. Для этого можно воспользоваться утилитой из etersoft-build-utils (gear-rpm соберёт правильно только после git commit, что может оказаться не удобно):
rpmbb libunrar3.spec
- выполняя поочерёдно git checkout master и git checkout sisyphus, можно наблюдать, как меняются местами два дерева исходников.
- После проверок можно смержить sisyphus c master
git checkout sisyphus git merge master
- синхронизируем git.alt с локальным репозитарием:
git push --all
Апдейт пакета сделан, пора готовить задание на сборку. Решаем, что в Сизиф собираем ветку sisyphus.
- Вывод команд не приводися.
git checkout sisyphus git tag -s -m "libunrar3-3.8.5-alt1" libunrar3-3.8.5-alt1 git push origin --tags ssh git.alt build packages/libunrar3 libunrar3-3.8.5-alt1
Ну вот, очередная версия пакета собрана в Sisyphus через git.alt. Если, конечно, там ошибок не получится.