@Nick a dit:
"C'est un assez gros omission puisque beaucoup de sites d'hébergement offrent seulement un repo. Avec svn je peux avoir autant de repos que je veux, en ne prenant une branche de la principale. Le subrepos sonne comme un hack."
Subrepos (aka submodules) ne sont pas aussi idéale qu' "étroit clones", c'est vrai. Mais au moins pour avoir beaucoup de projets distincts dans un site d'hébergement de référentiel, vous pouvez avoir plusieurs code-bases dans un référentiel. Cela ne vous permettra pas de découper les différentes sections d'un référentiel / sous-répertoires d'un projet , mais il va vous permettre de gérer de multiples projets. Ce que vous faire est d'avoir beaucoup d'nommé branches chaque racine est le vide (ou nulle) de l'ensemble de modifications (c'est à dire qu'ils ont pas de racine commune révision). Il peut obtenir un peu désordonné pour suivre les branches mais il fonctionne.
Par exemple:
hg init
hg branch project-1
# Changes, commits, repeated as needed
hg update null
hg branch project-2
# Changes, commits, repeated as needed
Maintenant, vous pouvez voir tous vos projets:
> hg branches
project-2 5:42c2beffe780
project-1 2:43fd60024328
Les projets ne sont pas liés (si vous pouvez les fusionner):
> hg debugancestors
-1:000000000000
Le plus utilement: vous pouvez cloner seulement le projet que vous souhaitez, et les autres ne se mélangent pas dans:
> hg clone <repository> -r project-1
Le graphe de cette ressemblerait à quelque chose comme ceci (hg log -qG
):
@ 5 | project-2 | {tip}
|
o 4 | project-2
|
o 3 | project-2
o 2 | project-1
|
o 1 | project-1
|
o 0 | project-1
Vous pouvez le faire pour autant de projets que vous le souhaitez, l'inscription de chacun avec hg branches
, et le saut d'entre eux avec des hg update
. Cela prend quelques soins, parce que nommé soutien branche n'est pas parfait. Il n'est pas toujours facile pour une chose (lire à propos de hg clone -u
dans Mercurial 1.4-le pre-1.4 comportement est surprenant lors du clonage). Mais il ne le travail.