2010-11-13 24 views
1

J'ai travaillé avec mercurial depuis un certain temps maintenant et je me sens comme un grand atout pour ce que je fais. C'est génial de ne jamais rattraper le code par accident. J'adore le flux de travail et souhaite installer le versionnement sur tous mes projets. Quelle est la meilleure option parmi les deux alternatives ci-dessous illustrées?Configuration de référentiels de gestion des versions - un grand ou plusieurs petits?

Alternative A:

/repo/ 
    /repo/ownWork/ 
    /project1/ 
    /repo/clients/ 
    /client1/ 

B Alternative:

/repo/project1/ 
/repo/client1/ 

Répondre

2

Je ne pense pas qu'il y ait une "bonne" réponse. Comme avec beaucoup de choses, cela dépend.
Personnellement, j'ai un référentiel séparé pour chaque projet et, éventuellement, un ou plusieurs référentiels pour le code partagé. Avec le contrôle de source distribuée, vous devez extraire/cloner tout le dépôt, pas seulement les sous-dossiers comme vous pouvez, par exemple, SVN. Par conséquent, j'aime que chaque projet/client soit aussi autonome que possible mais, si nécessaire, cloner les repos partagés aussi. Cependant, je maintiens toujours un seul serveur Web «central» pour les héberger tous. La bonne chose à propos de hg est qu'il semble (à mes yeux de débutant, de toute façon) d'être très facile à couper et à modifier votre disposition/structure au fil du temps. progresse

1

Dans mercurial, il est très facile de combiner des repos plus tard, mais pas possible de les séparer sans invalider les clones existants. Commencez séparé et fusionnez plus tard si cela est devenu un problème. Considérez les sous-états pour le code partagé entre les projets.