From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.2.5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imath.kiev.ua; s=hydra; t=1402606332; bh=dg+4v8bjPFWTlS5mU9prtOIdqHhXPkrK8o272RQILic=; h=Date:From:To:Subject; b=l4UQWNgwBju1jlKhzHQ60y5Sij6IA1YO6xGeFoy8VzkFcKgt26qm/ZmHUfQYf7iv/ H5WeZr/GH/4YQS77SsM3+MxZyDMhiLZ4iXtAdHRD3UoMvoRCXKXfdsBsgVg2VajNNM 8eKr0fndSfOP9w5pMYHSmUFQI3Kf49AbE6a1GZWw= X-Virus-Scanned: amavisd-new at imath.kiev.ua DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imath.kiev.ua; s=hydra; t=1402606328; bh=dg+4v8bjPFWTlS5mU9prtOIdqHhXPkrK8o272RQILic=; h=Date:From:To:Subject; b=RVJ11NyxWl22xcQRruuoLP/h2pM2fXydIiQON3E3AwxIPldY4yS9ays2wFxySs119 /BxuJu35eU0ouVZMU5YFY2ivZNjbNnqQE3mQNeSDryvWUn1nJejkjtL8onciEdnfjz rUyxCxa20gpUj6e74Kaoxda7RLtuc66Fo7nouGBk= Date: Thu, 12 Jun 2014 23:54:13 +0300 From: Igor Vlasenko To: devel@lists.altlinux.org Message-ID: <20140612205411.GA6263@dad.imath.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.21 (2010-09-15) Subject: [devel] I: http://www.altlinux.org/Gear/gear-uupdate X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jun 2014 20:52:19 -0000 Archived-At: List-Archive: List-Post: Господа, Выложил документацию по 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