Comecei a migrar essa semana todos meus projetos para o SVN. Acontece que, se quisermos baixar o arquivo de um SVN e migrar para outro, temos problemas porque é criado um diretório .svn/ dentro de todos subdiretórios. Para resolver este problema, criei um alias que remove recursivamente os diretórios .svn/ da pasta corrente.
Com o comando find conseguimos achar os diretórios .svn:
./.svn
./sourceA/.svn
./sourceB/.svn
./sourceB/module/.svn
./sourceC/.svn
Podemos, junto ao find, passar o comando rm -rf:
Podemos agora criar um alias e adicionar ao profile do usuário:
$ . ~/.bash_profile
A project/index.php
A project/sourceA/a.php
A project/sourceA/a1.php
A project/sourceA/a2.php
A project/sourceB/b.php
A project/sourceB/module/lib.php
A project/sourceC/c.php
Checked out revision 15.
$ cd project
$ csvn
removendo pastas .svn/
Agora podemos fazer checkout de um SVN, jogar para outro e versionar normalmente.
Observações:
-> Tomar muito cuidado para não utilizar este comando na raiz ou em algum diretório perigoso.
-> Não é recomendável utilizar este alias como root.
É isso! Valeu!

Gabriel Vaz | 24-Feb-10 at 5:56 am | Permalink
Uso o TortoiseSVN (Windows) e nele tem um exporte que faz isso p/mim…
Aguardamos posts!!
Nilton Junior | 29-Jul-10 at 6:24 am | Permalink
É possível também usar o comando:
svn export
onde: seria criado sem os .svn