J'ai accidentellement cloné un référentiel de subversion sans ajouter l'argument -stdlayout,
me donnant quelque chose comme: avec la disposition SVN / git-svn étant quelque chose comme: p> Toute façon de récupérer de cela? p> p>
3 Réponses :
Cela dépend: Voulez-vous pouvoir interagir avec subversion à l'avenir? P>
Sinon, envisagez de créer manuellement une succursale dans Git pour chaque branche dans Ce n'est pas joli, mais cela devrait être fonctionnel. P>
Plus de travail serait d'utiliser Beaucoup, beaucoup plus de travail serait de déterminer comment Branches Code> et déplacez le contenu de ce répertoire de branche jusqu'au niveau supérieur. Cela vous donne un engagement de travailler, et le suivi de la renommée de GIT devrait signifier que regarder l'histoire fonctionne raisonnablement bien. Si vous voulez des balises, vous pouvez également créer une succursale pour chaque balise, étiquetez-la, puis supprimez la branche. P>
filtre-filtre-branche code> pour ré-écrire l'historique de chacune des succursales que vous venez de créer de la même manière que vous avez réécrivé la pointe. Cela devrait vous laisser avec un référentiel qui a l'air correct. Vous n'obtiendrez toujours pas l'intégration de la subversion, cependant, et vous devriez déterminer comment traiter le point de branche d'origine. P>
git svn code> stocke ses métadonnées et transformer le référentiel (probablement à nouveau à l'aide de
filtre-filtre git code>) en conséquence - tout Les données doivent être là :). p>
Git-svn Store Metadata à deux endroits: le git-svn-id code> ligne dans le message de validation et
.git / svn / * /. rev_map code> fichier. .. Si vous supprimez le
REV_MAP code>, il sera régénéré à partir de
git-svn-id code>
Actuellement, on dirait qu'un nouveau départ est la seule option qui maintiendra l'interopérabilité avec SVN. P>
Pas la seule option, mais le plus facile. Si vous réécrivez la ligne GIT-SVN-ID et supprimez REV_MAP, Git-SVN peut les reconstruire pour vous.
Ce n'est pas une réponse exacte, mais ce que j'ai fait était d'ajouter le drapeau Cela nécessite que vous sachiez quel numéro REV vous voulez retourner dans ce cas 12000. Cela m'a permis de garder ma santé mentale après avoir manqué le drapeau -r code> pour préciser les derniers engagements, car je ne voulais pas vraiment commettre de toute façon. p>
git svn clone --prefix = svn / -s -r12000: http http: // Certains / svn / repo code> p> P>
-s code> et que je voulais vraiment faire en premier lieu dans une quantité de temps raisonnable. P>