29 Jun
Uma das coisas que mais me atrapalhava com o svn era quando eu queria gerar um snapshot do que tinha no repositório, mas sem os .svn .
Um one-liner bash que faz isso:
find . -iname .svn | xargs rm -fr
Explicação:
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
15 Jun
Recentemente escrevi um post sobre como migrar seu repositório svn para o git. Em um dos passos falo pra você criar uma lista de mapeamento dos seus usuários do svn para os do git. O único problema disso é descobrir quem são eles. Aqui vai um one-liner de bash que resolve isso :)
svn log | grep "^r[0-9]" | \\
sed -E "s/^.*\|(.*)\|.*\|.*$/\1/" | \\
sort | uniq > seu_arquivo_com_os_usuarios
Explicação da bizarrice acima:
Tentei fazer usando o comando cut no lugar do sed, mas o cut desistia no meio do caminho por causa de caracteres estranhos.
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
8 Jun
Sei que tem um monte de tutoriais por aí de como migrar de svn para git, mas não achei nenhum com tudo que eu precisasse e em português. Então aqui vai o meu :)
WARNING!!!! Se você tem um repositório svn público e vai migrar para o github, use o script de migração que ele te oferece quando você cria um repositório lá.
jonas = Jonas Abreu <jonas@vidagek.net> usuario_svn = Nome Usuario <email@usuario.net>
Dê o nome que quiser para o arquivo.
mkdir repo_temp cd repo_temp git svn init URL_DO_SEU_REPOSITORIO_SVN --no-metadata git config svn.authorsfile ARQUIVO_DE_MAPEAMENTO git svn fetch
É bem importante não esquecer do –no-metadata. Isso vai evitar que ele traga um monte de lixo (.svn, se não me engano) para sua máquina.
cd .. git clone repo_temp repo_final
cd repo_final.git/config
Troque a url:
[remote "origin"]
url = repo_temp
pela url do seu repositório git:
[remote "origin"]
url = URL_DO_SEU_REPOSITORIO
git push origin master
Pronto. Seu repositório acabou de ser migrado de svn para git. Simples, fácil e rápido (a não ser que você tenha uns 10k commits. Aí vai demorar bastante. No meu caso demorou cerca de 4 horas o processo completo.)
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.