2010-05-22 31 views
2

J'essaie d'utiliser la fonction subrepo de mercurial, en utilisant le plugin mercurial eclipse \ tortoiseHG.Pourquoi les sous-états mercuriels se comportent-ils comme des fichiers non-versionnés dans eclipse ET torotoiseHG

Ce sont les étapes de mon travail:

  1. a créé un vide dir /root
  2. clonée les prises en pension que je veux être subrepos dans ce dossier (/root/sub1, /root/sub2)
  3. créé et ajouté le .hgsub déposer dans le repo racine /root/.hgsub et mettre tous les mappages des sous-repos dans
  4. en utilisant tortoiseHG, clic droit sur /root et sélectionné create repository here
  5. à nouveau avec tortue, sélectionné tous les fichiers à l'intérieur /root et les ajouter à la prise en pension racine
  6. Commité les repo racine
  7. poussé le repo racine local dans un repo vide que j'ai mis sur four

Puis, j'ai extrait le repo racine dans eclipse, en utilisant import-> mercurial.

Maintenant, je vois que tous les sous-états apparaissent comme s'ils n'étaient pas versionnés (pas d'icône "cylindre orange" à côté de leurs dossiers correspondants dans l'explorateur de fichiers éclipse). En outre, lorsque je clique avec le bouton droit de la souris sur l'un des sous-rapports, je n'obtiens pas toutes les commandes hg du menu "équipe" comme d'habitude, avec des projets racine - pas de "pull", "push" etc.

En outre, quand j'ai fait une modification à un fichier dans un sous-scénario, puis "engagé" le projet racine, il m'a dit qu'il n'y avait pas de changements trouvés. Je vois le même comportement aussi dans tortoiseHG - Quand je suis en train de parcourir les fichiers sous /root, les fichiers appartenant directement au repo racine ont une petite icône (un signe V) sur eux marquant qu'ils sont contrôlés par la version, tandis que les sous-enregistrements ' les dossiers ne sont pas marqués comme tels.

Ce qui me fait soupçonner que c'est une erreur de mon côté, est que 1. à la fois tortue et éclipse faire la même chose, il est donc moins probable d'être un bug dans l'un 2. Ce qu'ils font semble assez sophistiqué, donc pas probable de se produire par un bug - ils ignorent tous les dossiers qui sont en .hgsub. Si le contraire s'était produit (tous les sous-dépôts traités comme des dossiers réguliers du dépôt principal plutôt que comme étant non convertis), j'aurais pensé que c'était un bug causé par le fait de ne pas traiter les sous-états. Mais clairement les deux applications reconnaissent le fichier .hgsub

Est-ce que je fais quelque chose de mal, ou est-ce un bug?

+0

Merci pour les modifications et précisions. J'ai terminé ma réponse, mais le moyen le plus sûr de déboguer cela est par le CLI (commandes hg dans un shell) – VonC

Répondre

1

Dans votre première étape, avez-vous eu des repos Mercurial imbriqués réels dans le repo racine?
La mise à .hgsub avec la directive "subdir = subdir" ne suffit pas pour faire de subdir un sous-reportage, si ce n'était qu'un sous-répertoire du repo principal (sans .hg propre).

Comme indiqué dans la documentation:

Notez que le référentiel imbriqué doit effectivement exister pour la ligne .hgsub à faire quoi que ce soit.
Par exemple, si au lieu de créer un référentiel imbriqué local, vous essayez de créer un lien vers une distance pré-existante, vous devez également cloner ce dépôt:

$ echo nested = https://example.com/nested/repo/path > .hgsub 
$ hg add .hgsub 
$ hg clone https://example.com/nested/repo/path nested 

En cas de doute, essayez toujours de répéter ce vous faites (jusqu'à la pression) dans une ligne de commande, pour voir ce qu'une session Hg CLI (Command Line Interface) peut vous montrer.
Vous pouvez essayer un clone de votre dépôt actuel pour voir ce qui s'est mal passé.

Maintenant, si vous avez eu des repos Hg imbriqués, il y a toujours la possibilité que le plug-in "MercurialEclipse" ne supporte pas encore les sous-dépôts.
Il ne mentionne aucunement les sous-états dans ses notes de publication.
Et TortoiseHg ne les mentionne que dans latest 1.0 release.

Soutien aux subrepos dans l'état/commit outil

+0

Ce qui me fait soupçonner que c'est une erreur de mon côté, c'est que 1. tortue et éclipse font la même chose, Il est donc moins probable qu'il s'agisse d'un bogue dans l'un ou l'autre. 2. Ce qu'ils font a l'air plutôt sophistiqué, donc peu probable que survienne un bogue - ils ignorent tous les dossiers qui sont en .hgsub. Si le contraire s'était produit (tous les sous-dépôts traités comme des dossiers réguliers du dépôt principal plutôt que comme étant non convertis), j'aurais pensé que c'était un bug causé par le fait de ne pas traiter les sous-états. Mais clairement les deux applications reconnaissent le fichier .hgsub – olamundo