Pergunta

Problema: aparentemente, os scripts no diretório .git/hooks dependem do nome do arquivo que corresponde a um dos seguintes:

post-commit
pre-commit
pre-rebase

etc...

Nenhum conceito de "extensão de arquivo" é necessário porque a "linha shebang" indica como o arquivo deve ser executado, desde que seja executável e esteja rodando em sua máquina Linux.

O problema é quando você tem alguns scripts que deseja executar em uma caixa do Windows.

Pergunta: Existe uma maneira de executar os scripts de gancho que possam ser entendidos em uma máquina Windows?

Foi útil?

Solução

Não acho que o Windows tenha o conceito de executar arquivos sem extensão. As soluções alternativas seriam para 1) usaria o Cygwin Git sob Bash, onde todo o negócio de Shebang funciona ou 2) um hack na versão Windows Git que realmente analisa a linha shebang e carrega o intérprete apropriado. Eu posso ver todos os tipos de objeções filosóficas ao último, então eu acho que isso não vai acontecer ...

Outras dicas

Sei que estou muito atrasado nisso, mas tenho uma solução para você.Se você estiver usando python, adicione ".py" à variável de ambiente PATHEXT (Painel de Controle, Sistema, Avançado, Variáveis ​​de Ambiente).Da mesma forma para sua linguagem de script específica.Em seguida, nomeie os ganchos como post-commit.py, pre-commit.py, etc.Quando um programa solicita ao Windows para executar o arquivo "post-commit" em um determinado diretório, o Windows examinará PATHEXT em ordem até encontrar um arquivo correspondente a "post-commit.extension", que será então executado.Eu fiz isso há muito tempo com svn hooks no Windows.

Na verdade, eu me contentei para a opção 3):

Crie um script "wrapper" do Windows que invoca o Git e Invoca todos os ganchos associados que eu quero executar. A desvantagem é que eu tenho que configurar o programa Wrapper para fazer o que o Git teria feito automaticamente se eu pudesse usar apenas os arquivos de gancho padrão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top