Importation des données SVN
Maintenant, l’import depuis Subversion dans le répertoire my_project est plus présentable. En lieu et place de commits qui ressemblent à ceci :
commit 37efa680e8473b615de980fa935944215428a35a
Author: schacon <schacon@4c93b258-373f-11de-be05-5f7a86268029>
Date: Sun May 3 00:12:22 2009 +0000
fixed install - go to trunk
git-svn-id: https://my-project.googlecode.com/svn/trunk@94 4c93b258-373f-11de-be05-5f7a86268029
les commits ressemblent à ceci :
commit 03a8785f44c8ea5cdb0e8834b7c8e6c469be2ff2
Author: Scott Chacon <schacon@geemail.com>
Date: Sun May 3 00:12:22 2009 +0000
fixed install - go to trunk
Non seulement le champ auteur a meilleure mine, mais de plus, le champ git-svn-id a disparu.
Il est encore nécessaire de faire un peu de ménage post-import. Déjà, vous devriez nettoyer les références bizarres que git svn crée. Premièrement, déplacez les étiquettes pour qu’elles soient de vraies étiquettes plutôt que des branches distantes étranges, ensuite déplacez le reste des branches pour qu’elles deviennent locales.
Pour déplacer les étiquettes et en faire de vraies étiquettes Git, lancez :
$ git for-each-ref refs/remotes/tags | cut -d / -f 4- | grep -v @ | while read tagname; do
git tag "$tagname" "tags/$tagname"; git branch -r -d "tags/$tagname";
done
Cela récupère les références déclarées comme branches distantes commençant par tags/ et les transforme en vraies étiquettes (légères).
Ensuite, déplacez le reste des références sous refs/remotes en branches locales :
$ git for-each-ref refs/remotes | cut -d / -f 3- | grep -v @ | while read branchname; do
git branch "$branchname" "refs/remotes/$branchname"; git branch -r -d "$branchname";
done
À présent, toutes les vieilles branches sont des vraies branches Git et toutes les vieilles étiquettes sont de vraies étiquettes Git. La dernière activité consiste à ajouter votre nouveau serveur Git comme serveur distant et à y pousser votre projet transformé. Pour pousser le tout, y compris branches et étiquettes, lancez :
$ git push origin --tags