Reprise du clone de git-svn

J’ai commencé à cloner un repository SVN en utilisant l’opération clone de git-svn. Après environ 6 heures d’importation (c’est un gros repository), mon ordinateur est allé dormir sur moi. Y a-t-il un moyen de reprendre l’opération sans refaire tout le travail initial?

La commande git svn fetch pour reprendre un git svn clone est confirmée par plusieurs sources:

  • Git svn et Gnome entrée de blog

(Incidemment, si au cours de l’étape initiale de clonage votre connexion meurt ou si vous devez l’arrêter pour reprendre le clone, il vous suffit d’exécuter la commande ci-dessus pour reprendre le téléchargement de l’historique).

  • Hacker News

Il semble y avoir une fuite de mémoire dans git-svn . La taille du processus git-svn a augmenté lentement et après environ deux semaines, il était de 1,2 Go en taille résidente. À ce moment-là, le système d’exploitation a refusé de le laisser partir.
La chose est que c’était une bénédiction déguisée.
J’ai été en mesure de reprendre le clone interrompu avec un simple ” git svn fetch “, et il a été exécuté beaucoup plus rapidement avec le tas maintenant radicalement plus petit.
En fait, cela a tellement bien fonctionné que j’ai pris l’habitude d’interrompre et de relancer le processus tous les soirs et tous les matins. Quelques jours plus tard, c’était fait.

  • tutoriel git-svn

Vous commencez vos aventures avec git-svn en clonant un repository Subversion existant:

 git svn clone url://path/to/repo -s 

L’indicateur -s suppose que votre référentiel utilise la convention “trunk, twigs, tags”. Sinon, vous devez spécifier manuellement quels répertoires représentent des twigs et des tags, si vous voulez que Git les connaisse.

Cela prendra du temps, car il récupérera chaque révision de SVN et s’engage localement. Si pour une raison quelconque il s’arrête, vous pouvez reprendre avec git svn fetch .

J’ai trouvé un article de blog qui fournissait ce que (j’espère) est une réponse correcte.

Apparemment, l’exécution de git svn fetch achève efficacement l’opération de clonage. En espérant!

Comme VonC, CaptainAwesomePants et Archi, tous ont dit que git svn fetch faisait l’affaire. Je faisais une git svn clone url... --authors-file=path/to/file et le clone a échoué parce que l’un des auteurs n’était pas dans le fichier auteurs. J’ai ajouté l’auteur au fichier et j’ai lancé git svn fetch et il a continué à partir du moment où il s’est arrêté. Il semblerait qu’il ait utilisé le nouvel auteur pour remplacer le nom de l’auteur de la validation.

A partir d’au moins git 2.1.0, vous pouvez reprendre en ré-émettant simplement le git svn clone

Cependant, cela va dupliquer certaines entrées de votre fichier .git / config et tout ira bien.