ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Igor Vlasenko <vlasenko@imath.kiev.ua>
To: devel@lists.altlinux.org
Subject: [devel] I: http://www.altlinux.org/Gear/gear-uupdate
Date: Thu, 12 Jun 2014 23:54:13 +0300
Message-ID: <20140612205411.GA6263@dad.imath.kiev.ua> (raw)

Господа,

Выложил документацию по gear-uupdate на
http://www.altlinux.org/Gear/gear-uupdate

Из наиболее важного, того, что не было в предыдущем письме -
описана логика работы утилит - сначала, не трогая репозитория,
одна утилита (gear-uupdate-prepare) компилирует логику обновления
репозитория в промежуточный код (набор shell скриптов).
Эти скрипты можно просмотреть, проверить и пошагово запустить
самостоятельно либо с помощью другой утилиты,
сохраняя полный контроль над процессом обновления.

=== раздел 3. запуск вручную ===

gear-uupdate(1) -- это обертка над парой утилит gear-uupdate-prepare(1) и gear-uupdate-execute.

Руками gear-uupdate запускают так:

gear-uupdate --upstream-version 6.8.9.3 ImageMagick-6.8.9-3.tar.xz

либо так

gear-uupdate ImageMagick-6.8.9-3.tar.xz 6.8.9.3

При первом запуске лучше не запускать сразу gear-uupdate, а запустить

gear-uupdate-prepare --upstream-version 6.8.9.3 ImageMagick-6.8.9-3.tar.xz

gear-uupdate-prepare сначала выполнит проверки из gear-rules-verify.

Затем, gear-uupdate-prepare (ничего не меняя в репозитории) генерирует набор shell скриптов. Эти скрипты могут быть созданы в корне gear репозитория, если апстрим в подкаталоге в текущей ветке. в остальных случаях скрипты надо прятать от git, поэтому они создаются в папке .git/uupdate/.

После выполнения gear-uupdate-prepare в .git/uupdate/ будет что-то вроде

__~.uupdate-step-001-checkout-and-update-upstream-branch.sh
__~.uupdate-step-002-merge-upstream-to-patch1-branch.sh
...
__~.uupdate-step-006-merge-upstream-to-patch5-branch.sh
__~.uupdate-step-007-merge-upstream-to-master.sh
__~.uupdate-step-008-update-spec-and-tags.sh

Эти скрипты можно просмотреть и убедиться еще раз, что робот понял структуру репозитория правильно. После чего их можно выполнить с помощью gear-uupdate-execute.

Утилита gear-uupdate-execute по очереди выполняет сгенерированные скрипты, удаляя скрипт, если он отработал нормально. Во многих схемах устройства gear репозитория изменения автора и изменения майнтайнера мержатся с помощью git, при чем, возможно, ветвь с оригинальными исходниками необходимо будет мержить в несколько ветвей. Для таких операций достаточно часто возникают конфликты.

Если конфликт при merge произошел, то gear-uupdate-execute остановится на скрипте, который завершился с ошибкой. git при этом будет в той ветви, в которой происходил merge. В таком случае майнтайнеру необходимо будет вручную разрешить конфликт в исходных файлах, и закоммитить изменения в git. При этом скрипт __~.uupdate-step-*, на котором произошел сбой, можно использовать в качестве готового шаблона команд. Затем можно удалить этот скрипт, и опять запустить gear-uupdate-execute, который выполнит оставшиеся скрипты.

Если убедиться, что gear-uupdate-prepare/gear-uupdate-execute отрабатывают нормально, далее уже сразу можно запускать gear-uupdate. 


-- 

I V



             reply	other threads:[~2014-06-12 20:54 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-12 20:54 Igor Vlasenko [this message]
2014-06-16  8:48 ` Anton Farygin
2014-06-16 11:25   ` Igor Vlasenko
2014-06-16 11:38     ` Anton Farygin
2014-06-16 15:53       ` Igor Vlasenko
2014-06-16 19:06         ` Anton Farygin
2014-06-17  4:07         ` Eugene Prokopiev
2014-06-17 17:33     ` Андрей Черепанов
2014-06-16  9:14 ` Anton Farygin
2014-06-16  9:42   ` Igor Vlasenko
2014-06-16 10:30     ` Anton Farygin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140612205411.GA6263@dad.imath.kiev.ua \
    --to=vlasenko@imath.kiev.ua \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git