2009-03-25 4 views
0

Sans accès à git et git-submodule, j'ai besoin d'incorporer un référentiel IP partagé dans deux référentiels de projet distincts tout en minimisant la surcharge de branchement. Les personnes de l'un ou l'autre projet ont besoin de pouvoir facilement bifurquer la ligne principale de leur projet tout en dérivant le repo IP partagé. Si/quand l'utilisateur modifie le repo ip partagé et qu'il est prêt à réintégrer ses modifications dans la ligne principale de son projet, ses modifications seront également comparées à la ligne principale du projet pour s'assurer que leurs modifications sont compatibles avec les deux projets. Je sais que c'est assez facile à faire avec git (sauf pour le mécanisme qui fait l'intégration continue dans la ligne principale d'un projet - qui est des scripts homebrew), mais est-il un moyen facile de le faire dans Subversion et Bitkeeper ? 'Svn: externals' résout presque mon problème de subversion, mais que se passe-t-il si le référentiel externe n'est pas dans Subversion?Comment incorporer l'IP partagée dans plusieurs projets tout en permettant un branchement facile?

Existe-t-il un équivalent à 'svn: externals' ou 'git-submodule' pour bitkeeper? Cela peut-il être fait avec des crochets post clone côté client? Comment?

EDIT: Ok. Je pense que j'ai compris comment faire ça. Si vous devez extraire le repo ip-reuse commun à la fois dans Subversion et BitKeeper, vous devez avoir le repo de réutilisation commun dans Subversion afin que vous puissiez utiliser 'svn: externals' comme emk indiqué. Pour BitKeeper, vous devez créer un déclencheur post-incoming qui sait faire une commande checkout à partir d'un serveur subversion.

Répondre

1

Dans Subversion, vous pouvez utiliser Subversion externals ou simple copie le répertoire nécessaire autour de votre arbre Subversion:

svn cp svn+ssh://.../libs/foo/trunk svn+ssh://.../projects/bar/trunk/libs/foo 

Pour modifier localement le code, engager juste des projets/bar/coffre/libs/foo .

La partie amusante fusionne avec les nouvelles modifications de lib/foo/trunk. Dans ce cas, vous voulez aller de l'avant et faire une fusion Subversion normale. (Ce sera easier if you're using Subversion 1.5 Si vous utilisez Subversion 1.4, vous devrez appliquer les correctifs manuellement.)

Malheureusement, je n'ai aucune expérience avec BitKeeper.