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:
(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).
Il semble y avoir une fuite de mémoire dans
git-svn
. La taille du processusgit-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.
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.