Да, вы, вероятно, можете достичь своей цели, используя hg convert
и хотя бы его параметр --filemap
.
Когда вы настраиваете новый репозиторий, вы МОЖЕТЕ изменить его историю, по крайней мере, до того, как он будет передан кому-либо еще. Кроме того, вы можете использовать модифицированную производную вашего оригинала в качестве основы для слияния с вашей новой.
Подход должен состоять в том, чтобы convert
превратить ваш старый репозиторий в новый, в котором осталась только история одного конкретного файла. Затем вы можете извлечь из преобразованного хранилища новое (см. извлечение из несвязанного ).
(В зависимости от вашей схемы ветвления вы также можете использовать процедуру преобразования с --branchmap
, чтобы поместить историю вашего важного файла в отдельную ветвь. Это может помочь идентифицировать эти исторические изменения позже. Если это так, то один раз вы объединили репозитории, которые вы можете просто объединить в одну ветку.)
При использовании convert
я бы порекомендовал выполнять разные шаги (карта файлов, карта ветвления и т. Д.) Как отдельные отдельные «проходы». Каждый из них создаст новый временный репозиторий. Это делает каждый шаг простым и понятным.