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.