From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 26 Sep 2006 14:14:25 +0400 From: "Alex V. Myltsev" To: devel@lists.altlinux.org Message-ID: <20060926141425.5647173a@localhost.localdomain> In-Reply-To: <45178EA0.1080603@altlinux.com> References: <20060921192020.GA24056@localhost.localdomain> <20060922055717.GH30153@localhost.localdomain> <20060922104427.GA8162@localhost.localdomain> <20060922233740.GA23397@nomad.office.altlinux.org> <20060923084002.GA8668@localhost.localdomain> <20060923084825.GA16165@basalt.office.altlinux.org> <20060923091957.GF8668@localhost.localdomain> <20060923140747.GA20143@basalt.office.altlinux.org> <20060923152346.GA10693@procyon.home> <20060923155446.GA23972@basalt.office.altlinux.org> <45178EA0.1080603@altlinux.com> X-Mailer: Sylpheed-Claws 2.3.1cvs20 (GTK+ 2.10.3; i586-alt-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: Re: [devel] =?utf-8?b?Z2VhciAtLSDRgdC+0LfQtNCw0L3QuNC1INGC0LDRgNCx?= =?utf-8?b?0L7Qu9CwINC40Lcg0LTRgNGD0LPQvtCz0L4gYnJhbmNo?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Sep 2006 10:14:26 -0000 Archived-At: List-Archive: List-Post: On Mon, 25 Sep 2006 12:09:04 +0400 Anton Farygin wrote: > Т.е. - вопрос, как скачивать сорцы определённых версий пакетов ? У меня есть такое представление о том, как должен работать gear-release: * Читает .gear-tags, в котором написано: branch1 path1 branch2 path2 ... * Из каждого бранча извлекает tree id посредством git-rev-parse и git-cat-file. * Создаёт новое дерево следующим путём: { git-ls-tree HEAD for (tree, path) in .gear-tags: echo "040000 tree $tree $path" } >git-mktree То есть пришивает к текущему дереву деревья из нужных бранчей под нужными именами. * Создаёт новый коммит1, который ссылается на новосозданное дерево, а родителем числит прошлый release commit. Создаёт новый коммит2, который ссылается на новосозданное дерево, но не имеет родителей. * Создаёт и подписывает два тэга: release-$version с коммитом1 и release-$version-bare с коммитом2. Теперь - на новосозданные тэги можно применять gear в неизменённом виде. - если .gear-tags пуст, то gear можно применять и на HEAD; если .gear-tags непуст, то gear не найдёт в нём path* и отвалится. Это напоминание сборщику, что HEAD требует применения gear-release. - наследственность тэгов вида release-$version по-прежнему можно проверять при входе в Сизиф, если считать, что майнтейнеры честны, хотя, может быть, забывчивы. (Если майнтейнеры нечестны, то проверка наследственности не помогает в любом случае.) - тэги release-*-bare можно использовать, если нужно скачать все исходники какой-то версии, и только их. Специальной поддержки со стороны git не требуется. Соответствие $release и $release-bare проверяется тривиально. (Прим.: HEAD всюду можно заменить на любой tree-ish.)