2014-02-05 2 views
0

Поводом для этого является управление репозиториями источника и вики GitHub и возможность git tag состояния всего проекта для релизов. Если есть более простой способ идти об этом, я все уши в комментариях :)Являются ли идентификаторы фиксации подмодулей хранятся в теге git?


Мне нужно, чтобы иметь возможность включать какой-то идентификатор для состояния подмодуль (возвращаемый быть git submodule status , например) в теге. Я не действительно должен быть в состоянии упаковать его всех вверх (как в Include a GitHub submodule automatically in download) -I только потребности возможности включить этот идентификатор, но любой дополнительные функциональные возможности, доступные для меня удивительного.

В стороне, я удивлен, что это не отслеживается в .gitmodules. Я понимаю, что это где-то в .git, но похоже, что любая информация в нем отслеживается (это имеет смысл, поскольку это не так).

ответ

0

Идентификатор фиксации, связанный с подмодулем, сохраняется как объект commit в объекте tree для каталога, содержащего подмодуль. Например, у меня есть локально packstack, который имеет несколько подмодулей в packstack/puppet/modules; мы можем видеть, совершающие, как это:

$ git ls-tree HEAD | awk '/packstack/ {print $3}' 
e7f8ff02ee9ceb26df165439fdffdad13e7ffe63 
$ git ls-tree e7f8ff02ee9ceb26df165439fdffdad13e7ffe63 | awk '/puppet/ {print $3}' 
0f710acfee985c3f8c3e559425a76194a4a809ea 
$ git ls-tree 0f710acfee985c3f8c3e559425a76194a4a809ea | awk '/modules/ {print $3}' 
1ccbe1d23c3ae2f2fe6aab987dd8d84d634012ef 
$ git ls-tree 1ccbe1d23c3ae2f2fe6aab987dd8d84d634012ef 
160000 commit 6d2dc044e12c4c687647cff8bc60c981d9ed5312 heat 
160000 commit 17ba6a73cec7f386922e6a914a120a829e225efc horizon 
160000 commit fe9b0d5229ea37179a08c4b49239da9bc950acd1 inifile 
160000 commit bb67ef3e0a7c605cee97f9a8ccd13000290f9b39 keystone 
. 
. 
. 

И, конечно, вы можете увидеть коммит идентификаторов для предыдущих версий вашего хранилища, начиная где-то кроме HEAD.

Смежные вопросы