41 votes

Comment puis-je importer un repo mercurial (y compris l'historique) dans un autre repo mercurial en tant que sous-répertoire, sans utiliser les sous-répertoires ?

Cela semble assez complexe, alors laissez-moi vous expliquer :

Projet_A a vécu pendant un certain temps dans son propre dépôt Mercurial. Le Projet_A est maintenant intégré dans un nouveau super projet, le Super-Projet_B. Le Super-Projet_B a également un dépôt Mercurial. Nous préférerions que le Projet_A ne soit pas un sous-répertoire, mais plutôt un enfant normal, mais nous ne voulons pas non plus perdre l'historique. Existe-t-il un moyen de faire cela ?

50voto

Ry4an Points 56453

Oui. Utilisez l'extension convert pour déplacer le projet A vers le bas d'un niveau de répertoire :

hg convert --filemap filemap.txt projectA projectA-redone

où votre filemap.txt a cette ligne dedans :

rename . projectA

(ce point pourrait être une barre oblique mais je ne le pense pas).

Cela vous donnera un nouveau repo, projectA-redone, qui a tout l'historique de A bien que tous les changesets auront des hashs différents puisque leur contenu (chemins) a changé pour avoir "projectA" devant chacun d'eux.

Ensuite, vous allez dans Super-Projet_B et faites un hg pull -f /path/to/projectA-redone . Vous avez besoin de la -f parce que sinon on vous dira que les dépôts ne sont pas liés puisqu'ils n'ont pas de changesets en commun.

Enfin, vous ferez un hg merge dans Super_projet_b qui ne devrait avoir aucun conflit (à moins que vous n'ayez déjà un répertoire de projetA, auquel cas vous auriez dû choisir un nom différent ou hg remove d'abord).

Après avoir fait cela, B aura tout A à l'intérieur du sous-répertoire projectA et tout l'historique sera intact.

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