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.