Puis-je diviser un référentiel Mercurial?

J’ai un grand repository Mercurial que j’ai décidé qu’il serait préférable d’utiliser plusieurs repositorys plus petits. Existe-t-il un moyen de diviser le référentiel et de conserver chaque historique de révision de chaque pièce?

La meilleure façon de procéder consiste à utiliser l’ extension «convertir» . Vous utiliserez mercurial et le type de source et de destination, puis utiliserez un --filemap avec des entrées comme:

 exclude path/you/do/not/want rename path/you/do/want . 

Le renommage n’est nécessaire que si vous voulez prendre les pièces que vous gardez et les déplacer plus haut dans la hiérarchie des répertoires.

J’ai trouvé un guide détaillé ici :

Créez un fichier map new-repo.filemap tel que

 include vendor/FooBackend rename vendor/FooBackend . 

Créez un autre fichier map rewrite-old-repo.filemap :

 exclude vendor/FooBackend 

Créez le nouveau référentiel:

 hg convert /path/to/current/repo /path/to/new/repo --filemap new-repo.filemap 

Le nouveau référentiel est maintenant terminé. Le répertoire est vide, mais une hg update accélérera son contenu.

Créez le référentiel modifié:

 hg convert /path/to/current/repo /path/to/rewritten/repo --filemap rewrite-old-repo.filemap 

Il suffit de le cloner et de supprimer les éléments indésirables de chaque copie.