Ação ordinária / útil SVN pre-commit ganchos

votos
40

Quais são alguns comum e / ou útil pre-commit ganchos para SVN?

Publicado 19/05/2009 em 20:31
fonte usuário
Em outras línguas...                            


22 respostas

votos
45

Que um usuário realmente entrou um comentário sobre a mensagem de commit, e que contém um número determinado assunto para rastrear.

Respondeu 19/05/2009 em 20:33
fonte usuário

votos
20

Verificação de caminhos absolutos em vários arquivos de texto (ou seja, VRML, XML etc). A maioria do código check-in nunca deve ter caminhos absolutos, mas algumas pessoas e ferramentas insistem em produzir material codificado.

Respondeu 19/05/2009 em 20:52
fonte usuário

votos
13
  • Verificar a existência de guias e rejeitar o check-in.
  • Verifique para fins de linha inconsistentes e rejeitar o check-in.
  • Verifique se há ocorrência de "CR: [nome de usuário]" e rejeitar o check-in, se não houver revisão de código.
Respondeu 19/05/2009 em 20:34
fonte usuário

votos
13

Eu faço uma contagem de palavras em enviar mensagens. Eles precisam ser 5 palavras ou mais. Isto levou a alguns insultos cômicos contra mim ...

Respondeu 19/05/2009 em 20:34
fonte usuário

votos
11

Você pode querer dar uma olhada em: http://svn.apache.org/repos/asf/subversion/branches/1.6.x/www/tools_contrib.html#hook_scripts (Esta página pode estar desatualizada, obviamente, não é mais mantido para Subversão 1,7)

Ou diretamente em: https://svn.apache.org/repos/asf/subversion/trunk/contrib/

Respondeu 05/08/2010 em 11:40
fonte usuário

votos
8

Temos um post cometer gancho que envia a mensagem para uma conta no Twitter. Usa twitsvn (disclaimer: Eu sou um committer nesse projeto).

Boba? Talvez ... mas acabou por ser uma boa maneira para nós para comunicar os acontecimentos do nosso repositório para alguns dos nossos membros da equipe-version-controle desafiado. Uma vez SVN começou a falar com eles através do seu cliente de Twitter, ele não se sentia tão bem como uma caixa preta.

Respondeu 24/11/2009 em 22:35
fonte usuário

votos
8

Eu gosto de usar svnganchos para:

  • reforçar os pontos mais rigorosas de estilo de código
  • verificar se há erros de sintaxe óbvias
  • certificar-se de palavras-chave Trac especial como "correções" ou "Endereços" são, na verdade, anterior ao número de emissão apropriado
Respondeu 19/05/2009 em 20:35
fonte usuário

votos
7

I verificar o tipo de arquivo e certifique-se que certos tipos proibidos não são cometidos por acidente (por exemplo, obj, PDB). Bem, não desde a primeira vez que alguém check-in 2 giga de arquivos temporários gerados pelo compilador :(

para Windows:


@echo off

svnlook log -t "%2" "%1" | c:\tools\grep -c "[a-zA-z0-9]" > nul
if %ERRORLEVEL% NEQ 1 goto DISALLOWED

echo Please enter a check-in comment 1>&2
exit 1


:DISALLOWED
svnlook changed -t %2 %1 > c:\temp\pre-commit.txt

findstr /G:"%1\hooks\ignore-matches.txt"  c:\temp\pre-commit.txt > c:\temp\precommit-bad.txt
if %ERRORLEVEL% NEQ 0 exit /b 0

echo disallowed file extension >> c:\temp\precommit-bad.txt
type c:\temp\precommit-bad.txt 1>&2
exit 1
Respondeu 20/05/2009 em 13:58
fonte usuário

votos
6

Na companhia atualmente eu trabalho, esta é verificada:

  • Se arquivos binários têm as necessidades atributo de bloqueio fixados;
  • Se os arquivos Java tem o aviso de copyright padrão e se inclui o ano em curso;
  • Se o código é formatado corretamente (usamos Jalopy para formatação de código) - isso pode parecer bobagem, mas ele realmente faz comparações de texto entre diferentes versões mais fáceis;
  • Se o código tem uma mensagem de confirmação;
  • Se a estrutura do diretório está em conformidade com o que está definido (todos os projetos devem estar sob uma pasta SVN definida, e cada projeto deve ter uma tag, ramo e pasta tronco);

Eu acho que é isso.

Eu gosto da idéia de verificar se o cometer está associado a um bilhete; ele realmente faz muito sentido para mim.

Respondeu 22/11/2009 em 08:46
fonte usuário

votos
6

Um grande commit gancho que temos em em nosso arquivo é verificar todos os .vcproj (ou .csproj) projetos do Visual Studio para garantir que os diretórios de saída não foram alteradas a qualquer coisa local (comumente usado para depuração).

Estes problemas irá compilar corretamente, mas ainda quebrar a construir, porque de executáveis ​​desaparecidas.

Respondeu 27/08/2009 em 15:49
fonte usuário

votos
6

Eu uso um gancho post-commit para reescrever a propriedade autor para um nome amigável de nossa árvore LDAP. (Autenticação é com identificação do empregado)

Respondeu 27/08/2009 em 15:43
fonte usuário

votos
5

Alguns preferem executando uma ferramenta lint-like para um determinado idioma para encontrar problemas comuns no código e / ou aplicar estilo de codificação. No entanto, em uma equipe pequena e hábil eu prefiro para permitir que cada commit para passar e lidar com possíveis problemas durante a integração contínua e / ou revisão de código. Graças a esta commits são mais rápidos que incentiva commits mais freqüentes, levando a uma integração mais fácil.

Respondeu 21/11/2009 em 00:49
fonte usuário

votos
3

Eu uso o check-mime-type.pl pré-commit gancho para verificar que tipo de MIME e Fim de opções de linha são definidas em arquivos comprometidos. Eu uso o Subversion para publicar arquivos para ser visível em um site usando DAV, e todos os arquivos sem a MIME Tipo set obter servido como arquivos de texto (por exemplo, HTML fonte é exibido em um navegador em vez da marcação processada).

Respondeu 22/11/2009 em 23:23
fonte usuário

votos
2

Eu uso o seguinte script de gancho para se certificar de final de linha do código-fonte e permissões de scripts shell estão corretas (é frustrante quando alguém verifica em em janelas quando tudo parece ok e quebra a construção unix).

#!/bin/bash

REPOS="$1"
TXN="$2"

# Exit on all errors.
set -e
SVNLOOK=svnlook
echo "`$SVNLOOK changed -t "$TXN" "$REPOS"`" | while read REPOS_PATH
do
  if [[ $REPOS_PATH =~ A[[:blank:]]{3}(.*)\.(sh|c|h|cpp) ]]
  then
    if [ ${#BASH_REMATCH[*]} -ge 2 ]
        then
    FILENAME=${BASH_REMATCH[1]}.${BASH_REMATCH[2]};

    # Make sure shell scripts are executable
    if [[ sh == ${BASH_REMATCH[2]} ]]
    then
        EX_VALUE="true"
            if [ -z "`$SVNLOOK propget -t \"$TXN\" \"$REPOS\" svn:executable \"$FILENAME\" 2> /dev/null`" ]
            then
            ERROR=1;
                echo "svn ps svn:executable $EX_VALUE \"$FILENAME\"" >&2
        fi
        EOL_STYLE="LF"
    else
        EOL_STYLE="native"
    fi

    # Make sure every file has the right svn:eol-style property set
        if [ $EOL_STYLE != "`$SVNLOOK propget -t \"$TXN\" \"$REPOS\" svn:eol-style \"$FILENAME\" 2> /dev/null`" ]
        then
        ERROR=1;
            echo "svn ps svn:eol-style $EOL_STYLE \"$FILENAME\"" >&2
    fi
    fi
  fi
  test -z $ERROR || (echo "Please execute above commands to correct svn property settings." >& 2; exit 1)
done
Respondeu 20/04/2011 em 15:49
fonte usuário

votos
2

Nós usamos um pré-compromisso e post-commit gancho de combinação para atualizar automaticamente bugzilla com a entrada associada do svn.

Nós usamos um segundo gancho (pré-commit) para garantir que o svn apropriado: eol-style e svn: keywords propriedades são definidas em um arquivo antes de ser adicionado ao repostitory.

Temos um terceiro gancho (post-commit) para lançar uma compilação e enviar os resultados se a compilação é quebrado, e para informar a todos quando a compilação foi corrigido novamente.

Temos uma quarta gancho (post-commit) para lançar a replicação svn, para garantir que a replicação externa é como até à data possível.

Infelizmente, eu não posso postar a fonte para estes, mas, exceto para a integração Bugzilla, eles são bastante fáceis de implementar e Hudson é provavelmente a melhor escolha para integração contínua.

Para a integração bugzilla, gostaria de sugerir a olhar para scmbug .

Respondeu 24/11/2009 em 21:17
fonte usuário

votos
2

Que tem uma mensagem de confirmação, e é! = De "correção de bugs". Droga, eu odeio essas mensagens inúteis!

Respondeu 22/11/2009 em 23:06
fonte usuário

votos
2

Inserir uma nota em Mantis bugtracker com os detalhes de changelists com base na mensagem de commit ter 'edição #' ou similar via RegEx.

Respondeu 19/05/2009 em 21:07
fonte usuário

votos
1

Como cerca de um gancho para compilar o projeto? por exemplo Run fazer toda. Isso garante que ninguém verifica no código que não compila! :)

Respondeu 20/11/2009 em 10:16
fonte usuário

votos
0

Eu verifico para o caso de colisão (janelas estúpidas) e também require-mergeinfo.pl para garantir que o cliente é de pelo menos 1,5 - de que maneira svn: mergeinfo será sempre definida

Respondeu 20/11/2010 em 04:49
fonte usuário

votos
0

Estou pensando em escrever um para verificar doctype de em arquivos aspx / html, só para ter certeza todo mundo está usando o correto.

Além disso, você pode ter uma pré (ou pós) commit gancho empurrar uma notificação para o seu servidor de CI como descrito no Blog Hudson

Respondeu 16/07/2010 em 15:26
fonte usuário

votos
0

Eu desfrutar de um gancho que verifica [Revisor: xyz] nota na mensagem de cometer, e rejeita a cometer.

Respondeu 22/06/2010 em 19:11
fonte usuário

votos
0

Resolver falta de Externals arquivo no SVN 1,5 usando PostUpdate e precommit

Respondeu 21/11/2009 em 20:39
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more