2010-10-22 44 views
2

Je suis arrivé à bord il y a environ 6 mois, et quand je suis arrivé, mon groupe n'utilisait AUCUN format de version. J'ai depuis Mgmt convaincu d'utiliser Mercurial dans de nouveaux projets, nous avons donc sur notre serveur web la structure suivante:Mercurial repo: ignorer tous les dossiers qui contiennent leur propre repo?

-MainFolder (which includes files for the main project) 
    +Subfolder A, which contains (old) project A with NO hg repo 
    +Subfolder B, which contains (old) project B with NO hg repo 
    +Subfolder C, which contains (NEW) project C AND a hg repo 
    +Subfolder D, which contains (NEW) project D AND a hg repo 

Notez que les seuls dossiers qui ont actuellement une prise en pension sont des sous-dossiers C et D, qui représentent des projets séparés.

Je voudrais ajouter un repo pour suivre tout ce qui n'est actuellement pas suivi, mais qui veut ignorer les dossiers qui ont actuellement leurs propres dépôts. Je sais à propos de l'utilisation de fichiers .hgignore, mais d'après ce que je comprends, il faudrait que j'ignore explicitement chaque dossier qui contient un repo. Ce n'est pas un problème dans l'exemple ci-dessus (avec seulement deux repos existants), mais notre configuration actuelle a plus de projets que cela.

Existe-t-il un moyen de dire à Mercurial d'ignorer dynamiquement tous les dossiers qui contiennent un repo, et de suivre tout le reste?

Répondre

3

Ce sera déjà fait hors de la boîte. Essayez la démonstration suivante:

hg init demo 
cd demo 
hg init foo 
cd foo 
echo foo>>foo.txt 
hg stat 
? foo.txt 
cd .. 
hg stat 
# Nothing! 

Vous devriez probablement dans la mise en place des principales prises en pension à utiliser subrepositories pour le suivi des changements dans les dossiers qui ont déjà leurs propres prises en pension. Si vous ne le faites pas, les modifications dans l'un de ces projets ne seront pas automatiquement validées lorsque vous commettez dans le main.

+0

Eh bien, je me sens idiot. Merci! Maintenant, pour penser à une explication de pourquoi cela me prendra au moins un mois à mettre en œuvre (donc je n'ai rien à faire pendant un mois): D – loneboat