11 votes

Git Svn Récupérer plus de révisions

J'utilise git-svn pour notre dépôt svn. Cependant, le dépôt est énorme, donc j'ai d'abord vérifié le projet comme ceci :

git svn clone svn://svn.server.com/project -s -r 12000:HEAD

Donc, maintenant, je n'ai que les révisions 12000 à la révision actuelle. J'aimerais extraire d'autres révisions, mais la commande suivante ne fait rien :

git svn fetch -r 11000:HEAD

Existe-t-il un moyen de récupérer les anciennes révisions ?

9voto

NUXI Points 451

Je ne pense pas que cela soit vraiment supporté, faire ainsi rebase le dépôt entier ce qui serait généralement considéré comme une mauvaise chose. (Bien que git pur soit plus qu'heureux de vous laisser vous tirer une balle dans le pied en faisant cela) Je ne vois pas de moyen de le faire, même après avoir manipulé les données dans .git/svn. Vous pouvez extraire les anciennes révisions des branches et des tags que vous n'avez pas récupérés, mais une fois que vous avez récupéré une branche, vous ne pouvez pas revenir en arrière et récupérer encore plus d'historique.

J'ai attendu 6 heures pour cloner un repo de 50k révisions, donc je connais votre douleur. Si vous voulez vraiment un tel historique, je vous suggère de le laisser tourner toute la nuit et de le récupérer dans son intégralité.

2voto

Xavier Nodet Points 2498

Il semble ce poste a une réponse : en gros, il ne faut pas commencer par cloner, mais par init et fetch. Je ne l'ai pas essayé moi-même (encore)...

2voto

hobbs Points 71946

Je ne suis pas assez expert en git et git-svn pour étoffer tout ça, mais vous devrait être capable de git svn clone votre svn dans un nouveau dépôt, ajoutez ce dépôt comme dépôt distant et récupérez-le à partir de votre dépôt de départ, puis ajoutez un point de greffe entre le premier commit dans l'ancien dépôt ( r12000 ) et le parent de r12000 dans le nouveau dépôt. Cela fusionnera les deux morceaux d'histoire ensemble. Mais encore une fois, il pourrait y avoir besoin d'un peu plus de Parcheando-up pour que git-svn fonctionne correctement.

-1voto

accreativos Points 98

J'utilise --fetch-all "svn-git fetch --all"

http://git-scm.com/docs/git-svn

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X