Pergunta

Eu gostaria de ter uma limpeza de mensagens de confirmação que não removerá necessariamente as linhas começando com um # na própria mensagem. O padrão --cleanup=strip remove tudo linhas começando com um # personagem.

Infelizmente, a razão é, o Trac O formatador wiki do motor usa hashes no início de um bloco de código para denotar o tipo de sintaxe. Isso cria dificuldade ao usar a sintaxe do mecanismo em minhas mensagens de confirmação.

Exemplo:

Created demo of perl added to helloworld.pl

{{{
#!/usr/bin/perl
use strict;
# say hi to the user.
print "hello world\n";

}}}

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD^1 <file>..." to unstage)
#
#   added:   helloworld.pl
# and so on and so forth...

Gostaria do seguinte resultado na mensagem final de confirmação registrada:

commit 1234567890123456789012345678901234567890
Author: Danny <...>
Date:   Wed Apr 7 13:34:29 2010 -0400

     Created demo of perl added to helloworld.pl

     {{{
     #!/usr/bin/perl
     use strict;
     # say hi to the user.
     print "hello world\n";

     }}}

Eu gostaria de usar um filtro personalizado que remove todas as linhas que começam com um hash da parte inferior da mensagem de confirmação para cima. Deixando as linhas na mensagem que adicionei sozinha. Onde ou como posso especificar isso no Git?

Observe que criar um script sed ou perl para executar a operação não é um problema, apenas sabendo onde conectá -lo em git é a questão.

Minhas desculpas pela confusão da minha pergunta, eu não tinha percebido o quão vago era.

Foi útil?

Solução

Eu acho que você vai querer usar duas coisas para conseguir isso:

  • Especifique o modo de limpeza. git commit Leva um --cleanup=<mode> opção; você pode usar --cleanup=whitespace Para impedir que o GIT retire quaisquer comentários. A outra escolha que você pode querer é literalmente, que (surpresa) não toca a mensagem. Veja o página de homem Para as outras opções, se você estiver interessado.

  • Use o commit-msg gancho para editar a mensagem no lugar. Caso você não tenha usado ganchos antes, a página do homem é chamada Githooks, e eles são scripts colocados em .git/hooks que são executados nos momentos apropriados. o commit-msg O gancho é executado com um único argumento, o arquivo que contém a mensagem de confirmação proposta. Ele pode editar a mensagem no lugar e, se retornar falha (diferente de zero), a confirmação será abortada. Então, escreva seu script de remoção personalizado como .git/hooks/commit-msg, verifique se é executável e você estará definido. Observe que o diretório Hooks não é rastreado; Se você quiser compartilhar isso com outras pessoas, um método comum é colocá -lo em algum lugar dentro do seu repositório, então simplink .git/hooks/commit-msg para isso.

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