8 votes

Comment faire pour que le sous-dépôt Mercurial pointe toujours vers un certain changeset ou tag ?

Je suis curieux de savoir si cela est possible avec Mercurial. J'aimerais avoir un sous-répertoire dans un projet qui est toujours fixé au changeset spécifié manuellement, ou mieux encore - tag.

En gros, ce que j'essaie de faire, c'est d'avoir un système de base dans le repo principal, puis tous les modules et composants dans des sous-répertoires, mais je ne veux pas que ces sous-répertoires pointent vers tip, seulement vers les versions majeures de ces composants/modules (d'où les tags).

3voto

krtek Points 15497

Les sous-dépositaires fonctionnent exactement comme vous le souhaitez.

Mercurial ne met jamais automatiquement à jour le subrepo à la pointe. Il reste toujours au changeset que vous avez choisi. De la documentation :

Subrepos ne suivent pas automatiquement le dernier jeu de modifications de leur fichier d'origine. sources . Au lieu de cela, ils sont mis à jour vers le jeu de modifications qui correspond avec le jeu de modifications extrait dans le jeu de modifications de niveau supérieur. Cela permet les développeurs obtiennent toujours un ensemble cohérent de code compatible et de bibliothèques compatibles lorsqu'ils effectuent une mise à jour.

Pour obtenir ce que vous voulez, vous pouvez suivre les étapes suivantes :

  1. echo subrepo = https://example.com/subrepo/repo/path > .hgsub
  2. hg add .hgsub
  3. hg clone https://example.com/subrepo/repo/path subrepo
  4. hg -R subrepo update mytag
  5. hg commit

Cela créera un répertoire subrepo avec le contenu du dépôt spécifié qui restera sur le serveur de l'entreprise. mytag tant que vous ne mettez pas à jour manuellement à quelque chose d'autre !

Tous ceux qui clonent votre dépôt auront le subrepo sur le même changeset que vous (ie mytag ).

Pour information, le jeu de modifications vers lequel un sous-référencement est mis à jour est stocké dans le fichier .hgsubstate à la racine du référentiel principal.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X