On Sat, Sep 23, 2006 at 07:54:46PM +0400, Dmitry V. Levin wrote: > On Sat, Sep 23, 2006 at 07:23:46PM +0400, Sergey Vlasov wrote: [...] > > Можно держать .gear-rules и spec в отдельном бранче, куда фиктивно > > (через git-pull -s ours) мержить бранчи, содержащие реальные > > исходники; тогда гарантировать наличие нужных объектов будет связь > > между коммитами. И, кстати, gitk при этом быстро отображает пустой diff (в отличие от merge с переименованием в подкаталог, для которых он очень долго формирует километровый diff). Правда, если в этом же коммите поменять, например spec, получается не совсем красиво - видимо, это лучше делать отдельным коммитом без merge. > > В этом случае неплохо было бы, чтобы gear проверял наличие этой связи; > > тогда придётся в параметре опции -t требовать не просто treeish, а > > commitish[:path]. > > Точно. Эта проверка просто необходима для поддержки .gear-tags. > > По моему, идея выглядит вполне живой. Только получается, что в .gear-tags придётся писать ссылки именно на commit - ссылку на объект типа tag написать уже нельзя. > > А когда у нас по плану уничтожение src.rpm? > > Как только перейдём на сборку из gear-репозиториев. Насколько я понимаю, > srpm-пакеты из /i/S будут srpmimport'иться и с этого момента srpm-пакеты > выкладываться перестанут. Ну и в каком виде пойдут исходники, например, в Uranus? > > Пока это не произойдёт, > > смотреть на tar придётся. И мне не нравится, что сейчас этот tar > > может содержать непонятно что вместо оригинальных исходников. > > Вместо оригинальных исходников всегда можно положить что угодно. Проблема в том, что при использовании gear зачастую это "что угодно" лежит в src.rpm под именем %name-%version.tar без всяких прочих признаков того, что оно отличается от оригинала: git $ git-diff --stat maint master .gear-rules | 1 Documentation/config.txt | 2 Documentation/core-tutorial.txt | 2 Documentation/cvs-migration.txt | 2 Documentation/tutorial-2.txt | 2 builtin-tar-tree.c | 2 describe.c | 4 diff.c | 18 +- git.c | 4 git.spec | 360 ++++++++++++++++++++++++++++++++ linkify.c | 444 +++++++++++++++++++++++++++++++++++++++ merge-tree.c | 4 pager.c | 2 templates/hooks--update | 149 +++++++++---- 14 files changed, 935 insertions(+), 61 deletions(-) Не стоит ли в этом случае, например, называть этот файл %name-%version-%release.tar? (Хм, а git-tar-tree у нас ещё и нестандартный - в нём прибито гвоздями umask 022, причём без возможности изменить это через tar.umask в конфиге... Не лучше ли, раз уж так хочется видеть такой umask, просто изменить начальное значение tar_umask? Да и документировано это изменение только в changelog пакета.)