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
svn checkout url ou svn co url
Adicionar arquivos ou diretórios no controle de versão.
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.
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..
svn status
Mostrar arquivos que possuem conflito de merge.
svn status | grep ^C
Persistir as mudanças
svn commit -m "comentario
Atualizar repositório local com as mudanças do servidor
svn update
Comandos avançados
Mostrar commits de determinados usuário
svn log -v | sed -n '/usuario/,/-----$/ p'
Mostrar commits de determinado dia
svn log | sed -n '/2013-11-28/,/-----$/ p'
Alterar o comentário de um commit
svn propset --revprop -r numeroRevisao svn:log "comentário"
Reverter arquivos com mudança de propriedade somente
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”
find -type d -wholename "*.svn" -exec rm -rf '{}' \;
Cuidado pois isto irá remover toda a referência de seus arquivos ao repositório.
