/ / Que githooks são chamados na atualização do submódulo? - visual-studio-2010, sub-módulos git, githooks, tortoisegit

Quais githooks são chamados na atualização do submódulo? - visual-studio-2010, git-submodules, githooks, tortoisegit

Então, aqui está a situação. Eu tenho um repositório git com vários submódulos. O diretório de nível superior e todos os submódulos contêm soluções do Visual Studio 2010.

O repositório de nível superior depende dasubmódulos atualizados e precisam ser reconstruídos sempre que forem atualizados. O que eu quero fazer, como existe um número arbitrário de submódulos, é criar algum tipo de gancho pós-atualização no git para compilar o submódulo que acabou de ser atualizado.

Então, minha pergunta é a seguinte: quais ganchos (se houver) são chamados quando um submódulo é atualizado? Parece que o pós-pagamento pode ser o que eu quero, mas não tenho certeza.

Estamos usando o TortoiseGit com o Git for Windows (msysgit) como back-end, se isso fizer alguma diferença.

Respostas:

1 para resposta № 1

Isso deve funcionar, como um post-update hook no pai repo:
Você precisaria monitorar o .gitmodules arquivo para quaisquer alterações, a fim de detectar quaisquer alterações nesse arquivo (indicando que outro clone do seu repo pai mudou um submódulo e comprometeu a nova referência no repo pai).
Então você pode:

  • detectar quais submódulos foram alterados
  • decida se você deseja atualizar seus submódulos (git submodule update --recursive)
  • recompilar os submódulos relevantes

Mas isso supõe que um clone do repositório pai tenha sido modificado para fazer referência a novos commits dos seus submódulos.

Se os submódulos forem atualizados independentemente de qualquer repositório pai, o mesmo post-update O gancho (ainda no repo pai), em um checkout / atualização do repo pai, precisa:

  • vá em cada submódulo e faça uma busca
  • verifique se a busca introduz novos commit
  • decida se você deseja atualizar seus submódulos, desta vez retirando as alterações dos submódulos
  • volte no repositório pai e confirme, para registrar o novo SHA1 dos submódulos de alterações
  • recompila os que precisavam de git pull (ou seja, isso mudou)

Você pode configurar o gancho pós-atualização em cada um dossubmódulos, mas a abordagem acima é melhor quando você adiciona ou remove submódulos do repositório pai, pois centraliza o processo de detecção em um único local (o post-update gancho do repositório principal).