Sou tão culpado quanto qualquer pessoa quando se trata de tentar lançar uma versão, correr contra o relógio e, acidentalmente, deixar uma instrução de depuração no código. Já aconteceu mais de uma vez e precisa parar.
Como desenvolvedor Drupal, tenho alguns que uso regularmente por meio do módulo Devel . Isso é excepcionalmente ruim quando me esqueço de removê-los, já que não coloco os módulos de desenvolvimento em produção (e você também não deveria). Essas pequenas funções simples fornecem ao usuário uma bela Tela Branca da Morte, ou, se você tiver suas mensagens de erro ativadas, um erro de ‘função não existe’.
Aqui está um lembrete amigável por meio de ganchos GIT para limpar seu código antes de enviar essas alterações.
PASSOS
Crie um gancho de pré-confirmação, se ainda não tiver um.
Adicione este snippet para revisar seu código.
Ajuste os parâmetros para as configurações desejadas.
Defina isso em um gancho de modelo para que todos os novos repos herdem essa verificação.
1. CRIE O GANCHO
Em seu projeto git, vá para .git/hooks
e copie ou renomeie o arquivo pre-commit.sample
para pre-commit
.
2. ADICIONE ESTE CÓDIGO
#!/bin/sh
#
# Check for debugging statements before commiting your code.
#
# List of function names to search for in regex format
FUNCTIONS='func1|func2|func3'
# If any functions are found as executable, prevent the commit.
DIEONFAIL=false
echo "Running the debugger check..."
RES=`egrep -nr --exclude-dir=".git" "^(s*)?[^/{2}]($FUNCTIONS)(.*)" .`
if [[ -n "$RES" ]]; then
echo "n$RES"
echo "nDebugging functions were found in your code!"
if [[ $DIEONFAIL == true ]]; then
echo "Changes were not committed."
exit 1;
else
echo "You may want to clean these up before you push those changes.nChanges were committed anyway.n"
exit 0;
fi
else
echo "n No debugging functions were found. Nice job, Ace!n";
exit 0;
fi
3. AJUSTE OS PARAMS
Substitua a lista de funções no topo por quaisquer funções que você deseja pesquisar. Use o formato regex.
Defina $DIEONFAIL
como true
se você deseja que o commit termine se encontrar alguma função listada, ou deixe como false
se você deseja que as alterações sejam confirmadas de qualquer maneira.
4. AJUSTE O MODELO
Você pode criar modelos de todo o sistema para seus ganchos git para que sejam herdados em cada novo projeto. Veja esta postagem no StackExchange para obter instruções.
Agora, toda vez que você tentar fazer commit de mudanças naquele projeto, git irá avisá-lo se você acidentalmente deixou alguma instrução de depuração para trás.
Drupal Exemplo
Aqui estão as configurações para o gancho que configurei em meus projetos Drupal. Observe que adicionei um diretório extra exclude para os devel
módulos.
# List of function names to search for in regex format
FUNCTIONS='dpm|kpr|qpr|console.log'
# If any functions are found as executable, prevent the commit.
DIEONFAIL=false
echo "Running the debugger check..."
RES=`egrep -nr --exclude-dir=".git" --exclude-dir="*devel*" "^(s*)?[^/{2}]($FUNCTIONS)(.*)" .`