Git/start2

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
48px-Mail-mark-junk red.svg.png
Эта статья протухла.
Её нужно существенно доработать или удалить


Пример переноса пакета на 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. Если, конечно, там ошибок не получится.