Como dar Commits SVN com Vim

Em alguns projetos, ao se dar um commit, é necessário especificar quais arquivos foram adicionados ou modificados e ainda mencionar o porque. Algo do tipo:

functions.pl – Adicionada a função que faz aquilo e corrigida a função tal que tinha um erro de português.

É realmente um porre ver todos os arquivos que foram modificados e dizer as mudanças, mas é necessário. Aqui vai uma dica pra quem quer melhorar isso e, por que não, automatizar. Vou utilizar o exemplo com o svn, mas adaptem para o que vocês usam.

$ cd /raiz/do/repositorio
$ svn status | vim -
$ svn commit -F /tmp/commit

Aquela segunda linha, joga a saída do comando `svn status` em um buffer no Vim. Assim, podemos editar melhor. Caso o servidor seja externo e demore muito uma resposta, apenas aguarde. A saída do shell irá para buffer, apenas aguarde.

Com tudo pronto, podemos fazer algumas substituições:

:%s/^A\s\+/[ADICIONADO] /g
:%s/^D\s\+/[REMOVIDO] /g
:%s/^M\s\+/[MODIFICADO] /g

Cada letra da primeira coluna, indica o status do arquivo no projeto. Uma lista completa com as opções pode ser encontrada em http://svnbook.red-bean.com/en/1.4/svn.ref.svn.c.status.html

Agora você organiza seu log. Escreve porque foi adicionado o arquivo X, removido o arquivo Y e etc. Depois de pronto, basta salvá-lo e utilizá-lo como log do commit.

:sav /tmp/commit
$ svn commit -F /tmp/commit
$ rm /tmp/commit

Uma outra maneira de se fazer isso é usando o Vim como editor default do SVN.

vim ~/.bashrc

Acrescente as seguintes linhas:

export SVN_EDITOR=/usr/bin/vim

Agora, ao usar `svn commit`, o vim irá ser aberto para você especificar o motivo.

Acho que é isso! Comentem =)

Posts Relacionados

Por favor, se você deseja opinar, criticar ou até mesmo mandar uma receita de bolo, deixe um comentário! Ou fique atento aos feeds.

Comentários

Nenhum comentário ainda.

Deixe um comentário

(obrigatório)

(obrigatório)