J'ai commencé à cloner un référentiel SVN en utilisant l'opération de clonage de git-svn. Après environ 6 heures d'importation (c'est un gros dépôt), mon ordinateur est allé dormir sur moi. Existe-t-il un moyen de reprendre l'opération sans refaire tout le travail initial?
Le git svn fetch
commande pour reprendre un git svn clone
est confirmé par plusieurs sources:
(Par ailleurs, si au cours de l'étape de clonage initiale, votre connexion s'éteint 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 dugit-svn
le processus a progressé lentement et après environ deux semaines, il était à 1,2 Go de taille résidente, à ce moment-là, le système d'exploitation a refusé de le laisser bifurquer.
Le fait est que c'était une bénédiction déguisée.
J'ai pu reprendre le clone interrompu avec un simple "git svn fetch
", et il a fonctionné beaucoup plus rapidement avec le tas désormais plus petit.
Cela a si bien fonctionné, en fait, que j'ai pris l'habitude d'interrompre et de redémarrer le processus chaque soir et chaque matin. Quelques jours plus tard, c'était fait.
Vous commencez vos aventures avec
git-svn
en clonant un référentiel Subversion existant:
git svn clone url://path/to/repo -s
Le
-s
flag suppose que votre référentiel utilise la convention "trunk, branches, tags". Sinon, vous devez spécifier manuellement les répertoires qui représentent les branches et les balises, si vous voulez que Git les connaisse.Cela prendra beaucoup de temps, car il récupérera chaque révision unique de SVN et sera validé localement. Si, pour une raison quelconque, il s'arrête, vous pouvez reprendre avec
git svn fetch
.
J'ai trouvé n article de blog qui a fourni (j'espère) une réponse correcte.
Apparemment, exécutant git svn fetch
termine efficacement l'opération de clonage. En espérant!
Comme VonC, CaptainAwesomePants et Archi ont tous dit git svn fetch
fait l'affaire. Je faisais un git svn clone url... --authors-file=path/to/file
et le clone a échoué car l'un des auteurs ne figurait pas dans le fichier des auteurs. J'ai ajouté l'auteur au fichier et j'ai exécuté git svn fetch
et il a continué là où il s'était arrêté et en regardant le journal git plus tard, il semble qu'il ait utilisé l'auteur nouvellement ajouté pour remplacer le nom de l'auteur de la validation, donc tout était doux.
Depuis au moins git 2.1.0, vous pouvez reprendre en rééditant simplement git svn clone
Cependant, cela dupliquera certaines entrées dans votre .git/config supprimez-les et tout ira bien