Ответ 1
Да. Используйте расширение конвертации для перемещения projectA вниз на один уровень каталога:
hg convert --filemap filemap.txt projectA projectA-redone
где ваш filemap.txt
имеет эту строку:
rename . projectA
(эта точка может быть косой чертой, но я так не думаю).
Это даст вам новый репо, projectA-redone, который имеет всю историю A, хотя все изменения будут иметь разные хэши, поскольку их контент (пути) изменились, чтобы получить "projectA" перед всеми из них.
Затем вы перейдете в Super-Project_B и выполните hg pull -f /path/to/projectA-redone
. Вам нужно -f
, потому что в противном случае вам будет сказано, что репозитории не связаны между собой, поскольку они не имеют общих наборов изменений.
Наконец, вы сделаете hg merge
в Super_project_b, у которого не должно быть конфликтов (если у вас уже нет каталога projectA, в этом случае вы должны были бы выбрать другое имя или hg remove
d вначале).
После этого B будет иметь все A внутри подкаталога projectA, и вся история будет неповрежденной.