Remover recursivamente diretórios .svn do Subversion

Para quem programa, é comum utilizar Subversion, uma aplicação que controla revisões nos códigos.

Você cria um repositório em um servidor remoto e mais de um programador pode baixar o mesmo projeto e fazer suas modificações.

Quando o programador envia o projeto para o repositório o Subversion mescla todas as alterações impedindo que haja perda e sobrescrição.

Um problema é que toda cópia enviada para o repositório tem pastas .svn que contém metadata. Essas pastas ficam na máquina local e, eventualmente, ao atualizar, há conflito de versões impossibilitando que o programador atualize seu projeto e/ou o repositório.

Para resolver isso, basta remover as pastas .svn.

Atenção: a responsabilidade por qualquer ação feita em seu sistema é só sua! Na dúvida, não faça nada.

1) Abra um terminal;

2) find . -type d -name .svn; rm -rf -v `find /diretorio/ -name *.svn`

3) rm -rf em todas as pastas encontradas;

4) Opção 1: rm -rf `find . -type d -name .svn` 

5) Opção 2: rm -rf  -v `find . -type d -name .svn` 

A opção do ítem 4 procura e apaga tudo o que existir mas não mostra a lista das pastas e a do ítem 5 é no modo verbose, ou seja, procura e apaga tudo o que existir informando o que o comando fizer.

Também fiz um script para facilitar essa remoção bastando criá-lo em qualquer lugar do diretório do usuário com permissão de execução (+x).

#!/bin/bash
echo “Script para remover pastas .svn de projetos Subversion”
echo “Lista das pastas encontradas: ”
find . -type d -name .svn find /diretorio/ -name *.svn
echo -n “Confirma remoção completa (S/N)?”
read opcao
if [ opcao == “S” ]
then
rm -rf `find . -type d -name .svn` rm -rf -v `find /diretorio/ -name *.svn`
echo “Verificando se as pastas foram removidas…”
find . -type d -name .svn find /diretorio/ -name *.svn
echo “Concluído”
else
echo “Finalizando programa…”
fi

É isso aí, abraço.

ATUALIZAÇÃO – 05/03/2013: os comandos antigos, que estão riscados, funcionam mas os que adicionei são mais eficazes.

PySVN Workbench – Alternativa para conexão com servidores SVN

Dica rápida.

PySVN Workbench é um programa para acessar servidores remotos. É uma alternativa ao NetBeans, por exemplo, já que se pode usar o PySVN para baixar e enviar o projeto e usar um gedit ou outro editor qualquer para manipular os arquivos.

Atenção: a responsabilidade por qualquer ação feita em seu sistema é só sua! Na dúvida, não faça nada.

Intalação (no terminal):

1) sudo apt-get install python-svn
2) sudo apt-get install svn-workbench

Testei somente no Ubuntu 10.04, ok?

É isso aí, abraço.