Поиск подходящей версии для Бранча

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

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «== Преамбула == Бывает такая ситуация что в Сизифе слишком свежий пакет, а в бранче слишком ...»)
м
 
(6 промежуточных версий не показаны.)
Строка 1: Строка 1:
 +
  Основная статья и список необходимых пакетов - [[ Gear + Hasher ]]
 +
== Преамбула ==
== Преамбула ==
Строка 9: Строка 11:
== Процесс ==
== Процесс ==
-
!!! Переписать получение репозитория - rpmgp тянет не все теги!!!
+
!!! Подобрать пакет для примера !!!
=== Тянем с git.alt gear-репозиторий ===
=== Тянем с git.alt gear-репозиторий ===
-
   $rpmgp -g name_pckg
+
   $ rpmgp -g name_pckg
-
   $cd name_pckg
+
   $ cd name_pckg
=== Ищем тэг или коммит с релизом, который мы пробуем собрать в бранч ===
=== Ищем тэг или коммит с релизом, который мы пробуем собрать в бранч ===
-
   $git tag
+
   $ git tag
   или
   или
-
   $git log
+
   $ git log
-
Запоминаем имя нужнго тэга или копируем хеш нужного коммита
+
Запоминаем имя нужного тэга или копируем хеш нужного коммита
=== Создаём ветку с именем нужной нам версии ===
=== Создаём ветку с именем нужной нам версии ===
Строка 34: Строка 36:
=== Пробуем бэкпортировать и получаем ошибку ===
=== Пробуем бэкпортировать и получаем ошибку ===
 +
''' ВНИМАНИЕ ''' : Для наглядности процесса далее все примеры будут приведены для бранча p7
 +
 +
<pre>
 +
$  rpmbph -b p7
 +
 +
error: pathspec 'p7' did not match any file(s) known to git.
 +
Error in rpmbph: Can't checkout branch p7. Use FULLPATH_TO_WORK_DIR/packagename.spec.p7 manually or remove it.
 +
</pre>
 +
 +
Меняем старый спек на только что сгенерированный
 +
<pre>
 +
$ mv Packagename.spec.p7 Packagename.spec
 +
$ rm Packagename.spec.p7
 +
</pre>
 +
 +
Комментируем и создаём  ветку p№ вручную
 +
 +
<pre>
 +
$ git commit  Packagename.spec -m "initial p7 branch build"
 +
$ git checkout -b p7
 +
</pre>
=== Работаем в ветке p№ ===
=== Работаем в ветке p№ ===
 +
 +
Проверяем что находимся в нужной ветке и пробуем собрать
 +
<pre>
 +
$ git status
 +
On branch p7
 +
nothing to commit, working directory clean
 +
 +
$rpmbsh
 +
</pre>
 +
 +
Если не получилось - работаем над ошибками.
 +
 +
Все изменения теперь будем сохранять в ветку p7.
 +
 +
Если стало ясно что и данная версия слишком нова для бранча, то удаляем данную ветку p№ и возвращаемся к пункту : [https://www.altlinux.org/%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D0%B5%D0%B9_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_%D0%B4%D0%BB%D1%8F_%D0%91%D1%80%D0%B0%D0%BD%D1%87%D0%B0#.D0.98.D1.89.D0.B5.D0.BC_.D1.82.D1.8D.D0.B3_.D0.B8.D0.BB.D0.B8_.D0.BA.D0.BE.D0.BC.D0.BC.D0.B8.D1.82_.D1.81_.D1.80.D0.B5.D0.BB.D0.B8.D0.B7.D0.BE.D0.BC.2C_.D0.BA.D0.BE.D1.82.D0.BE.D1.80.D1.8B.D0.B9_.D0.BC.D1.8B_.D0.BF.D1.80.D0.BE.D0.B1.D1.83.D0.B5.D0.BC_.D1.81.D0.BE.D0.B1.D1.80.D0.B0.D1.82.D1.8C_.D0.B2_.D0.B1.D1.80.D0.B0.D0.BD.D1.87 Ищем тэг или коммит с релизом, который мы пробуем собрать в бранч ]
 +
 +
Идея в том что при выполнении команды '''$ rpmbph -b p№''' у Вас не должно быть уже существующей ветки '''p№'''
 +
 +
Поэтому если Вы считаете что нужно сохранить результат Вашей работы, то нужно отпочковаться от ветки p№ и удалить саму ветку p№
 +
 +
<pre>
 +
$ git checkout -b p7_backup
 +
$ git checkout -D p7
 +
</pre>
=== Отправка в Сизиф ===
=== Отправка в Сизиф ===
 +
Проверяем что находимся в ветке p7 :
 +
<pre>
 +
$ git status
 +
On branch p7
 +
nothing to commit, working directory clean
 +
</pre>
 +
 +
И отправляем в Сизиф на сборку:
 +
 +
<pre>
 +
$ rpmbs git.alt -u
 +
</pre>
 +
После чего ждём письмо на почту с результатом.
 +
Если пришло письмо "EPERM" - Значит что задание собралось и отправлено на модерацию к "главному" по бранчу.
 +
 
[[Категория: Бэкпорт ]]
[[Категория: Бэкпорт ]]

Текущая версия на 16:15, 20 декабря 2016

 Основная статья и список необходимых пакетов -  Gear + Hasher 

Содержание

Преамбула

Бывает такая ситуация что в Сизифе слишком свежий пакет, а в бранче слишком старый.

И бэкпортировать свежий пакет в бранч не позволяют старые версии пакетов, которые редко или вообще не обновляются в бранче.

Чтобы понять почему это происходит нужно прочесть политику создания бранчей в Altlinux и чем они отличаются от Сизифа.

Процесс

!!! Подобрать пакет для примера !!!


Тянем с git.alt gear-репозиторий

 $ rpmgp -g name_pckg
 $ cd name_pckg

Ищем тэг или коммит с релизом, который мы пробуем собрать в бранч

 $ git tag
 или
 $ git log

Запоминаем имя нужного тэга или копируем хеш нужного коммита

Создаём ветку с именем нужной нам версии

 $git checkout -b Name_release имя_тэга
 или
 $git checkout -b Name_release хеш_коммита

Нас должно автоматически переключить в новую ветку

Пробуем бэкпортировать и получаем ошибку

ВНИМАНИЕ  : Для наглядности процесса далее все примеры будут приведены для бранча p7

$  rpmbph -b p7

error: pathspec 'p7' did not match any file(s) known to git.
Error in rpmbph: Can't checkout branch p7. Use FULLPATH_TO_WORK_DIR/packagename.spec.p7 manually or remove it.

Меняем старый спек на только что сгенерированный

$ mv Packagename.spec.p7 Packagename.spec
$ rm Packagename.spec.p7

Комментируем и создаём ветку p№ вручную

$ git commit  Packagename.spec -m "initial p7 branch build"
$ git checkout -b p7

Работаем в ветке p№

Проверяем что находимся в нужной ветке и пробуем собрать

$ git status
On branch p7
nothing to commit, working directory clean

$rpmbsh

Если не получилось - работаем над ошибками.

Все изменения теперь будем сохранять в ветку p7.

Если стало ясно что и данная версия слишком нова для бранча, то удаляем данную ветку p№ и возвращаемся к пункту : Ищем тэг или коммит с релизом, который мы пробуем собрать в бранч

Идея в том что при выполнении команды $ rpmbph -b p№ у Вас не должно быть уже существующей ветки p№

Поэтому если Вы считаете что нужно сохранить результат Вашей работы, то нужно отпочковаться от ветки p№ и удалить саму ветку p№

$ git checkout -b p7_backup 
$ git checkout -D p7

Отправка в Сизиф

Проверяем что находимся в ветке p7 :

$ git status
On branch p7
nothing to commit, working directory clean

И отправляем в Сизиф на сборку:

$ rpmbs git.alt -u

После чего ждём письмо на почту с результатом.

Если пришло письмо "EPERM" - Значит что задание собралось и отправлено на модерацию к "главному" по бранчу.

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