Nunca se esqueça de remover suas instruções de depuração com GIT Hooks

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

  1. Crie um gancho de pré-confirmação, se ainda não tiver um.

  2. Adicione este snippet para revisar seu código.

  3. Ajuste os parâmetros para as configurações desejadas.

  4. 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/hookse copie ou renomeie o arquivo pre-commit.samplepara 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

Confira a essência

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 $DIEONFAILcomo truese você deseja que o commit termine se encontrar alguma função listada, ou deixe como falsese 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 develmó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)(.*)" .`