2010-10-20 4 views
2

Scénario:Comment mettre en miroir un dépôt SVN GitHub SVN dépôt hébergé dans un autre lieu

J'ai une prise en pension Git hébergé à GitHub: https://[email protected]/Nerian/JPovray.git

qui peut être consulté par les clients svn: http://svn.github.com/Nerian/JPovray.git

Et j'ai un autre serveur SVN hébergé dans les serveurs de l'école. Je veux que ce serveur soit un miroir du repo de GitHub.

C'est une exigence de l'école d'utiliser le dépôt SVN à l'école.

Test:

#Create the mirror repo 
svnadmin create dest 

#Make the hooks always pass 
echo "#!/bin/sh" > dest/hooks/pre-revprop-change 
echo "#!/bin/sh" > dest/hooks/start-commit  

#Make the hooks executable 
chmod +x dest/hooks/pre-revprop-change dest/hooks/start-commit 

#Initialize the mirror repo to mirror the github repo 
svnsync init file://`pwd`/dest http://svn.github.com/Nerian/JPovray.git 

Il me donne ce message:

svnsync: Stockage des biens non régulier 'svn: wc: ra_dav: version url' est pas autorisée par l'interface de dépôt , et pourrait indiquer un bogue dans votre client

#Start the mirroring process 
svnsync sync file://`pwd`/dest 

Il me donne cette mes sage:

svnsync: RAPPORT 'http://svn.github.com/Nerian/JPovray.git': 200 OK (http://svn.github.com)

#Checkout the mirror repo. 
svn checkout file://`pwd`/dest client 

Il me donne le message:

Vérifié sur la révision 0.

Actuellement, il existe 6 révisions sur t Github repo. La caisse indique qu'il y en a 0. Cela signifie donc que la synchronisation n'a pas fonctionné. Le repo client est vide, tandis que le repo Github a 2 deux fichiers.

: Contraint

Il est possible d'exécuter des commandes dans le repo SVN à l'école, je viens de contacter le gestionnaire SVN.

L'historique de validation du dépôt GitHub doit être conservé. Nous sommes une équipe de 3 membres et le professeur a besoin de savoir qui s'engage quoi.

EDIT:

Je contacté GitHub à ce sujet, et ils ont dit qu'il est impossible de mettre en miroir un repo svn GitHub parce qu'ils ne sont pas vraiment prises en pension de subversion. C'est juste une sorte de pont.

J'ai donc commencé à programmer une solution:

https://github.com/Nerian/github_subversion_converter

Cette application Ruby permettra le transfert d'un commits SVN un à l'autre. Actuellement, à partir du 23 octobre 2010, il fait son travail. Mais ne conserve pas le nom de l'auteur de validation. Je travaille dans ça. Devrait être fonctionnalité complète dans une semaine. Pour l'état actuel, vérifiez la page de repo.

+0

Depuis que je n'ai pas trouvé une solution logicielle appropriée .... Je construis un. Cochez la case – Nerian

+1

S'il vous plaît envisager d'ajouter votre solution comme une réponse afin qu'il puisse être fermé. De cette façon, les autres peuvent voir qu'une question a été répondue. –

Répondre

0

Git pure avec la manière git-svn peut être plus pratique (recopie manuel):

  • repo Github acessed comme git-repo
  • SVN repo est juste à distance supplémentaire avec git-svn
Questions connexes