Возможно, вам нужно что-то вроде ConvertExtension . Проверьте --splicemap
вариант.
Чтобы создать новую историю с добавлением файла .hgignore в качестве первой ревизии:
- Создайте новый репозиторий, единственной ревизией которого является коммит .hgignore.
- Создайте файл сплайс-карты, содержащий два 40-символьных хеша: rev 0 вашей текущей базы данных и rev 0 вашей новой базы данных.
- Выполнить
hg convert <current_db_dir> <new_db_dir> --splicemap splice_filename
Это добавляет каждую ревизию в текущей базе данных в новую базу данных. Splicmap определяет редактирование родителей, поэтому, если ревизия 0 текущей базы данных получает свой родительский набор с ревизией 0 новой базы данных.
Ниже приведен пакетный файл Windows, который создает базу данных с 3 ревизиями и базу данных с 1 ревизией с файлом .hgignore, соединяя их вместе. Результат должен быть тем, что вы ищете. Если у вас большая исходная база данных, это может занять некоторое время, поскольку вся история исходной базы данных перезаписывается в целевую базу данных.
@echo off
@REM Create a 3-revision database
hg init current
cd current
echo >file1
hg add
hg ci -m file1
echo >file2
hg add
hg ci -m file2
echo >file3
hg add
hg ci -m file3
@REM Add the first revision to the splice map
hg log -r 0 --template "{node} " > ..\map
@REM Display the result
hg log
cd ..
@REM Create a 1-revision database
hg init ignore
cd ignore
echo glob:*.txt>.hgignore
hg add
hg ci -m ignore
@REM Specify this node as the parent of the other
@REM database's first revision in the splice map
hg log -r 0 --template "{node}\n" >> ..\map
hg log
cd ..
@REM Here's the resulting splice map
type map
@REM Make a copy to store the result
hg clone ignore result
@REM Add revisions from "current" to "result" honoring
@REM the splice map
hg convert current result --splicemap map
@REM Display the result
cd result
hg log