Вы можете сделать это, но при этом вы лишаете законной силы все клоны, поэтому обычно не стоит этого делать, если вы не работаете в одиночку.
Каждое изменение в Mercurial уникально идентифицируется с помощью хеш-кода, который представляет собой комбинацию (среди прочего) изменений исходного кода, метаданных и хэшей одного или двух родителей. Эти родители должны существовать в репо до самого начала проекта. (Отсутствие этого ограничения будет иметь мелкие клоны, которые пока недоступны).
Если у вас все в порядке с изменением хэшей более новых наборов изменений (которые снова разбивают все клоны в дикой природе), вы можете сделать это с помощью команд;
hg export -o 'changeset-%r.patch' 400:tip # changesets 400 through the end for example
cd /elsewhere
hg init newrepo
cd newrepo
hg import /path/to/the/patches/*.patch
Возможно, вам придется проделать небольшую работу для обработки наборов изменений слиянием, но это общая идея.
Можно также сделать это, используя hg convert
с типом hg
в качестве исходного и целевого типов, а также splicemap
, но это, вероятно, еще сложнее.
Большой вопрос, как вы набираете 60 ГБ исходного кода или добавляете сгенерированные файлы вопреки всем советам. :)