O svn (Subversion) é um sistema de controle de versão cuja finalidade é gerenciar as diferentes versões no desenvolvimento de um documento qualquer.
Normalmente é utilizado no desenvolvimento de software para controlar as versões do código fonte, documentação, etc.
Neste post irei mostrar alguns dos principais comandos de linha e algumas variações que podem ser úteis.
Comandos básicos
Baixar/Copiar um repositório
1 2 | svn checkout url ou svn co url |
Adicionar arquivos ou diretórios no controle de versão.
1 | svn add arquivo_ou_diretorio |
Os arquivos serão somente agendados para serem incluídos no repositório. Estes serão incluídos no próximo commit.
Remover arquivos ou diretórios do controle de versão.
1 2 3 | svn remove arquivo_ou_diretorio ou svn delete arquivo_ou_diretorio ou svn rm arquivo_ou_diretorio) |
Os arquivos serão somente agendados para serem excluídos no repositório. Estes serão excluídos no próximo commit.
Mostrar status do reposiório.
Mostra os arquivos a serem adicionados, removidos, etc..
1 | svn status |
Mostrar arquivos que possuem conflito de merge.
1 | svn status | grep ^C |
Persistir as mudanças
1 | svn commit -m "comentario |
Atualizar repositório local com as mudanças do servidor
1 | svn update |
Comandos avançados
Mostrar commits de determinados usuário
1 | svn log -v | sed -n '/usuario/,/-----$/ p' |
Mostrar commits de determinado dia
1 | svn log | sed -n '/2013-11-28/,/-----$/ p' |
Alterar o comentário de um commit
1 | svn propset --revprop -r numeroRevisao svn:log "comentário" |
Reverter arquivos com mudança de propriedade somente
1 | for i in `svn status | grep '^ M'| awk '{print $2}'`; do svn revert $i; done; |
Remover o diretório e todos os subdiretórios “.svn”
1 | find -type d -wholename "*.svn" -exec rm -rf '{}' \; |
Cuidado pois isto irá remover toda a referência de seus arquivos ao repositório.
