2016-09-15 4 views
-1

Je migre un projet SVN vers Git. Le projet SVN a la structure suivante dans le référentiel.(ERREUR) SVN -> Migration Git Erreur non valide

/trunk 
/branches 
/tags 

Parce que je veux tronc d'agir comme branche principale, d'autres branches comme les branches git normales et les étiquettes que les balises git.

j'ai couru en dessous de commande

git svn clone --stdlayout <svn-repo-url> 

et aussi essayé

git svn clone <svn-repo-url> -T trunk -b branches -t tags 

Pour les deux commandes ci-dessus je suis l'erreur suivante:

fatal: .git\svn\refs\remotes\origin\https;C:\Softwares\Git\index: index file open failed: Invalid argument 
     (in cleanup) update-index -z --index-info: command returned error: 128 
W: +empty_dir: branches/<svn-repo-url>/branches 
fatal: Unable to create '<my-git-working-directory>/.git\svn\refs\remotes\origin\https;C:\Softwares\Git\index.lock': Invalid argument 

Et si je lance ci-dessous commande

J'obtiens l'erreur suivante

svn-remote.svn: remote ref '/Users/<user-id>/AppData/Local/Programs/Git/trunk:refs/remotes/origin/trunk' must start with 'refs/' 

S'il vous plaît aider

+0

J'ai eu le même problème mais j'ai utilisé https://github.com/nirvdrum/svn2git et cela a fonctionné pour moi. – 2Fast2BCn

Répondre

-1

git-svn est pas l'outil idéal pour les conversions uniques de dépôts. C'est un excellent outil si vous voulez utiliser Git comme frontal pour un serveur SVN existant, mais pour les conversions uniques, et non utilisez git-svn, mais svn2git, ce qui est beaucoup plus adapté à cette utilisation.

Il existe des outils pleny appelés svn2git, le meilleur est probablement le KDE de https://github.com/svn-all-fast-export/svn2git. Je recommande fortement d'utiliser cet outil svn2git. C'est le meilleur que je connaisse et il est très flexible dans ce que vous pouvez faire avec ses fichiers de règles.

Si vous n'êtes pas 100% sur l'histoire de votre dépôt, svneverever de http://blog.hartwork.org/?p=763 est un excellent outil pour étudier l'histoire d'un dépôt SVN lors de la migration à Git.

+0

nous ne pouvons pas utiliser d'autres outils – virendrao

+0

Pourquoi pas? Surtout que vos exigences ne sont pas réalisables. e. g. vous avez dit que vous voulez que les tags soient des tags Git normaux. 'git-svn' n'est pas ** capable de cela, mais les balises SVN deviendront des branches Git avec un préfixe' tags/'. 'git2svn' ** est ** capable de le faire correctement, au moins si vous utilisez celui que j'ai recommandé. – Vampire

+0

son capable, nous devons exécuter un script séparé que j'ai .. – virendrao

-1

Depuis, dans le cadre de mon travail, je l'ai effectué de nombreuses migrations SVN-à-GIT, j'ai créé un outil d'emballage pour elle:

https://github.com/tikalk/tikal-alm-tools/tree/master/scm-tools/scm-migration/manual/SVN2GIT

En outre, vous pouvez me consulter en

+0

pouvez-vous aider sur le problème ci-dessus. Je ne peux pas utiliser cet outil – virendrao

+0

La structure de chaque référentiel SVN et de ses liens symboliques internes et internes rend difficile la création d'un outil capable de convertir n'importe quel référentiel SVN en GIT.Par conséquent, chaque cas d'utilisation peut être différent et résolu différemment. La meilleure pratique consiste généralement à migrer vers GIT sans historique et dans le même temps se débarrasser des fichiers binaires, anciens dossiers. En parallèle, garder le dépôt SVN en lecture seule facilitera le passage au GIT. – yorammi