2010-01-18 4 views

Répondre

3

Il est possible que git push ou git bundle ne comprennent pas svn metadata. Mais selon git svn intro, vous pouvez essayer de restaurer ces svn metadata.
(disclaimer: non testé directement)

reconstruction des métadonnées git-svn

Si vous avez copié le dépôt d'ailleurs (par exemple, de repo.utsl.gen.nz) par l'intermédiaire git-clone, ou si vous venez de fait sauter loin, alors vous n'aurez pas de métadonnées SVN - juste commits.
Dans ce cas, vous devez reconstruire vos métadonnées SVN, par exemple, pour simplement garder le tronc à jour - git-svn reconstruira ses métadonnées lorsque vous exécuterez git-svn fetch.

$ git update-ref refs/remotes/trunk origin/svn/trunk 
$ git svn init https://svn.perl.org/parrot/trunk 
Using higher level of URL: https://svn.perl.org/parrot/trunk => https://svn.perl.org/parrot 
$ git svn fetch 
Rebuilding .git/svn/git-svn/.rev_db.d31e2699-5ff4-0310-a27c-f18f2fbe73fe ... 
r17220 = 78ad11bf2f61b35e1cb32a978ab546d198be8a2e 
r17219 = 605264b06d84670ec402d7a7a21c0016cae3a928 
r17218 = a8ceba9c503d2be8e8e69a3df454017322906cf5 
... 

L'essentiel de se rappeler à la reconstruction git-svn métadonnées est de rendre les refs regardent comme ils regarderaient d'une importation fraîche; vous pouvez le faire en utilisant git update-ref comme ci-dessus, en copiant des fichiers refs autour de .git/refs/, ou en utilisant git pack-refs puis en éditant .git/packed-refs.
Pour tester que vous l'avez bien fait, utilisez git show-ref - peut-être comparer avec un nouveau clone SVN HEAD.

+0

Merci pour votre réponse. Le git update-ref me donne le message: "fatal: origin/svn/trunk: pas un SHA1 valide", mais git show-ref liste les refs/remotes/trunk pour le miroir git repo. Puis-je ignorer la mise à jour-réf? – fawick

+0

J'ai eu de meilleurs résultats avec 'git update-ref refs/télécommandes/trunk origin/master' _after_ le' git svn init'. Mais, contrairement à l'exemple ci-dessus, j'avais utilisé 'git svn init' avec les options -t/-b qui définissaient aussi les balises et les branches, donc je devais aussi configurer les références pour chacune des balises. (Obtenu en exécutant 'git show-ref' sur le clone git-svn original.) – seanf