2009-08-18 2 views
1

Je déplace un projet de SVN à git (complètement, donc pas besoin de SVN interop fonctionnalités de git svn) et j'ai essayé d'utiliser à la fois git svn et svn2git (nirvdrum's fork on github) et un problème que j'ai, c'est que notre mise en page du référentiel dans SVN était comme si:Lors de la conversion de svn en git en utilisant git-svn ou svn2git, comment puis-je changer le chemin de base du référentiel et éventuellement conserver des branches/tags?

example.com/website/trunk|branches|tags/base/code,

et quand je l'importer dans git, le répertoire racine du référentiel contient un répertoire, la base (pas le vrai nom), puis tous les trucs. C'est un peu un problème pour nous, car cela ajoute quelques complications.

Existe-t-il un moyen facile et facile de changer la racine du dépôt pour qu'il soit bas, soit pendant l'importation, soit rétroactivement avec les pouvoirs fous de l'histoire de git? Sinon, un répertoire qui ne devrait pas être la racine du dépôt et qui contient un autre code non apparenté doit être la racine du dépôt dans git, ce qui est étrange, et pour une raison quelconque, avec SVN ce n'était pas le cas (c.-à-d. la racine du dépôt était base, et le répertoire parent n'avait pas de substance svn).

J'espère que c'est une question rapide à laquelle quelqu'un peut répondre facilement. Oh, en passant, j'ai en quelque sorte des branches et des balises que je veux importer, mais encore une fois celles-ci devraient être enracinées à la base, pas dans le répertoire parent de la base. Ce n'est pas un gros problème s'il n'est pas possible d'importer ces données parce qu'elles sont pratiquement inutiles et que l'équipe utilisait déjà SVN, mais ce serait bien de les avoir.

Répondre

1

svn2git prend également des options pour cela; en utilisant l'exemple dans la réponse de Charles serait:

svn2git --trunk example.com/website/trunk/base/code \ 
     --tags example.com/website/tags/base/code \ 
     --branches example.com/website/branches/base/code 

[caveat. Je n'ai pas essayé, mais pour autant que je sache, svn2git convertit seulement ceux dans les -T|t|b des options pour git-svn]

+0

Oh cool, c'est à peu près ce que je voulais savoir. – Ibrahim

1

Vous devriez être en mesure de le faire:

git svn init -Texample.com/website/trunk/base/code -texample.com/website/tags/base/code -bexample.com/website/branches/base/code 

au lieu d'accepter la valeur par défaut ou en utilisant -s|--stdlayout.

+0

Merci, c'est essentiellement ce que je cherchais. Je veux juste savoir si je peux le faire aussi avec svn2git parce que ça rend les choses un peu plus propres. – Ibrahim

Questions connexes