Ответ 1
Вы можете сделать это, но при этом вы лишаете законной силы все клоны, поэтому обычно не стоит этого делать, если вы не работаете в одиночку.
Каждый набор изменений в 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
, но это, вероятно, еще более splicemap
.
Большой вопрос в том, как набрать 60 ГБ исходного кода или вы добавляете сгенерированные файлы вопреки всем советам. :)