2010-06-19 8 views
6

Nous avons actuellement un grand dépôt subversion, et j'essaie de le déplacer vers GIT. Le problème est qu'il utilise des troncs et des balises sous le répertoire racine. Par exemple:Importation de Subversion en GIT: problème avec les sous-chemins

MyDepartment\MyOS\Project1\trunk\    <-- master branch 
MyDepartment\MyOS\Project1\branch\v1   <-- other branch 
MyDepartment\MyOS\Project1\tags\v1_20100101 <-- release tag 

Il existe différents départements, systèmes d'exploitation et de nombreux projets différents.

Alors, quand je clone le dépôt SVN en utilisant --stdlayout:

git svn clone --stdlayout http://svn-repository/ 

Le clone finit vide. Sans l'option, j'obtiens un clone, mais ensuite les branches sont traitées comme des répertoires sur la branche master.

  1. Existe-t-il un moyen d'importer cette structure de répertoires en une fois?
  2. Si j'écris un script pour importer tous les projets séparément, existe-t-il un moyen de combiner les importations GIT par projet dans un seul grand dépôt GIT?
+1

'--stdlayout' suppose' trunk', 'tags',' branch' ** 'es' **. – jfs

Répondre

0

Regardez dans Git submodules. Vous devrez probablement importer chacun de vos sous-projets séparément, mais le résultat pourrait refléter un peu mieux votre utilisation actuelle.

+0

Malheureusement, le livre que j'ai lu ("Version Control with Git") décourage l'utilisation de sous-modules d'une manière plutôt convaincante – Andomar

3

Si j'understande correctement à la question, vous voulez:

git svn clone 
    --trunk=MyDepartment\MyOS\Project1\trunk 
    --tags=MyDepartment\MyOS\Project1\tags 
    --branches=MyDepartment\MyOS\Project1\branch 
    http://svn-repository/ 

Mise à jour: vous pouvez inclure plus d'un --branches et --tags:

git svn clone 
    --trunk=MyDepartment\MyOS\Project1\trunk 
    --tags=MyDepartment\MyOS\Project1\tags 
    --tags=MyDepartment\MyOS\Project2\tags 
    --tags=OtherDepatment\MyOS\Project1\tags 
    --branches=MyDepartment\MyOS\Project1\branch 
    --branches=MyDepartment\MyOS\Project2\branch 
    --branches=OtherDepartment\MyOS\Project1\branch 
    http://svn-repository/ 

Vous ne pouvez pas avoir plus le seul coffre évidemment.

Git est vraiment conçu pour prendre en charge un projet par référentiel et non plusieurs projets dans un seul référentiel. Je suppose que vous allez rencontrer de nombreux problèmes en essayant de l'utiliser comme ça.

+0

Il existe de nombreux projets différents. Je peux scripter l'importation pour chaque projet, mais comment puis-je les combiner dans un dépôt git? – Andomar

+0

Petite mise à jour sur plusieurs branches et paramètres de balises. est-ce que cela aide? Ou vous voulez que git devine automagiquement la structure complexe de votre dépôt? Je crois que ce n'est pas possible. – silk

+0

Est-il possible de fusionner plusieurs référentiels git en un seul? – Andomar

Questions connexes