Pergunta

Jeff Atwood escreveu sobre espaço em branco e sugeriu a criação de cometer gancho que remove à direita espaços em branco nas extremidades das linhas e arquivos.

Eu procurei, mas não encontrei um exemplo claro de usar um gancho pre-commit para modificar os arquivos como este. Você tem um script que você gostaria de compartilhar?

Foi útil?

Solução

Eu tenho certeza que pré- cometer ganchos não podem ser usados ??para modificar a transação em andamento. Ela só pode permitir ou negar a ação cometer. No seu caso, você gostaria de examinar os arquivos para ver se eles atender às suas necessidades de espaço em branco e deixar a comprometer com uma mensagem de erro útil se não o fizerem. Você pode usar um gancho post-commit para fazer o que você propõe, mas isso implicaria fazer uma segunda comprometer a partir do script de gancho para corrigir o mau espaços em branco no primeiro cometer. Eu acho que a abordagem gancho pre-commit é melhor.

Outras dicas

Você não pode realmente usar cometer ganchos para fazer isso na subversão, porque se o arquivo for modificado pelo servidor, não irá corresponder a versão no cliente. Cometem ganchos são para eventos somente leitura, como a geração de mensagens de notificação, ou verificando os arquivos para ver se o commit deve ser bloqueado.

a documentação sobre cometer ganchos :

Um gancho é um programa disparado por um evento repositório, como a criação de uma nova revisão ou a modificação de uma propriedade sem versão. Alguns ganchos (os chamados “Pre ganchos”) são executados antes de uma operação de repositório e fornecer um meio pelo qual tanto relatório que está prestes a acontecer e impedir que isso aconteça em todos . Outros ganchos (os “ganchos post”) executado após a conclusão de um evento repositório e são úteis para executar tarefas que examinam-mas não modificam-o repositório . Cada gancho é suficiente informação entregue a dizer o que esse evento é (ou era), o repositório específico alterações propostas (ou concluído), e o nome de usuário da pessoa que disparou o evento.

Não sei o que plataforma você está, mas você pode fazer isso com TortoiseSVN , utilizando a sua ganchos do lado do cliente .

Essencialmente, você iria escrever um script que iria modificar os arquivos usando um gancho pre-commit. Eu acho que isso é mais corretamente feito em um script de construção, porém: você realmente não quer se comprometer código que você nem sequer compilado ou correr! Seu script que os espaços remove poderia quebrar alguma coisa, dependendo do contexto / idioma.

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