J'ai la structure du référentiel svn suivante:Comment utiliser git-svn pour travailler avec des parties disparates d'un dépôt svn?
branches
branch-1
branch-2
trunk
system-a
component-0
component-1
system-b*
component-0
component-1*
shared*
site_scons*
SConscript*
J'ai une équipe qui a besoin de développer component-1
de system-b
mais ils ont besoin d'utiliser git localement, car ils ne disposent pas d'un accès direct à notre serveur svn. git-svn
semble être juste ce que je cherche, car il me permet de créer leur repo git et de gérer la synchronisation via git svn dcommit
et git svn rebase
.
Je peux facilement reproduire le repo toute svn pour eux avec git svn clone https://svn-repo
, mais cela aussi leur donner tout sous system-a
, ainsi que tout autre que component-1
sous system-b
. Il y a plusieurs raisons de ne pas le faire, dont le moins important est qu'il n'est pas judicieux de répliquer (et de suivre les modifications) de vastes quantités du référentiel qui n'affectent pas l'équipe system-b/component-1
.
Les répertoires étoilés ci-dessus sont les seuls dont ils ont vraiment besoin pour obtenir des mises à jour et les modifier. Ce serait aussi génial de leur interdire d'apporter accidentellement des changements à des choses auxquelles ils n'ont pas besoin d'accéder.
Comment puis-je accomplir ceci avec git-svn
? Je pensais que je pourrais créer quelques repo git séparés, à la:
git svn clone https://svn-repo/trunk/SConscript
git svn clone https://svn-repo/trunk/site-scons
git svn clone https://svn-repo/trunk/system-b/component-1
git svn clone https://svn-repo/trunk/shared
Mais cela ressemble et sonne comme ce sera un casse-tête pour l'équipe git depuis, à ma connaissance, cela crée quatre dépôts git réellement distincts . Y a-t-il un moyen d'avoir cette structure de «caisse clairsemée» dans un seul dépôt git en utilisant git-svn
?