Esta dica foi generosamente cedida por Alexis Midon.
Obrigado! O post original dele esta aqui.
Alexis descobriu que no processo de conversão de Subversion para Git, tags acabam ficando um pouco confusas e mostram-se como branches ao invés de serem convertidas.
Isto pode ser muito inconveniente, especialmente quando usamos git branch
que irá trazer uma tonelada de branches sendo que gostariamos de mostrar as tags com algo como tag/1.2
, e assim por diante. Com um pouco de script e magia de Git podemos limpar isso facilmente.
Ele seguiu o processo padrão para converter um repositório svn:
$ mkdir rails $ cd rails $ git svn init -t tags -b branches -T trunk <path to svn repo> Initialized empty Git repository in .git/ $ git svn fetch
Depois ele preparou um pequeno script para converter todas as ‘tag branches’ em tags de verdade, e em seguida verificar se foram todas devidamente excluidas.
$ git-for-each-ref refs/remotes/origin/tags | cut -d / -f 5- | while read ref do git tag -a "$ref" -m"say farewell to SVN" "refs/remotes/origin/tags/$ref" git push origin ":refs/heads/tags/$ref" git push origin tag "$ref" done
Se você criou mais algum script que ajude na conversão de alguma outra SCM para Git, nos avise nos comentarios ou submeta a sua própria dica