On Mon, Nov 27, 2006 at 06:55:55PM +0300, Alex V. Myltsev wrote: > > Оказывается, vsu@ уже кое-что сделал: > > http://lists.altlinux.org/pipermail/devel/2006-October/037580.html > Получается небольшой SCM внутри gear, который зачем-то хранит свою > служебную информацию не в .git, а в файлах репозитория. Это, конечно, > удобнее, чем хранить патчи в файлах, но не намного. Хочется какого-то > решения gitовой проблемы gitовыми средствами. Это не SCM, а решение другой проблемы - обеспечения идентичности результатов применения gear к указанному коммиту вне зависимости от содержимого .git/refs/ в репозитории. По этой причине нельзя просто использовать в .gear-rules имена тегов - во время выполнения gear эти теги вполне могут отсутствовать в .git/refs/tags/, или их имена могут указывать на совершенно другие объекты. Если использовать в .gear-rules только явные sha1, сохранять в .gear-tags/ ничего не нужно, однако такой способ работы неудобен. В принципе можно было бы обойтись без сохранения содержимого объектов tag в файлах, оставив только список ссылок на коммиты (и так было в первоначальной реализации). Сейчас единственная польза от этих объектов в том, что сохраняется некоторая информация об идентичности использованного коммита тому, который был сделан в upstream (в частности, тег может содержать подпись GPG). Результат работы git-archive при передаче тега совпадает с результатом, получаемым при передаче коммита (в заголовок пишется sha1 коммита, sha1 тега не сохраняется).