Хотел бы сделать ртутный клон с фильтром шаблонов в hgignore - PullRequest
2 голосов
/ 01 июня 2011

Со временем ряд разработчиков зафиксировали файлы, которые затем были добавлены в .hgignore. Из того, что я слышал, нет способа удалить элементы из истории Mercurial, что нормально. Но я также слышал, что есть способ сделать клон, я думаю, используя плагин конвертирования, чтобы клонировать / экспортировать репозиторий, указав, какие файлы не включать в конвертацию.

Не могу не подумать, что у кого-то есть сценарий, который выполняет этот экспорт / фильтрацию / преобразование, используя шаблоны из файла .hgignore.

Кто-нибудь создал такого зверя?

Ответы [ 2 ]

2 голосов
/ 01 июня 2011

Вы можете создать карту файлов из .hgignore, выполнив что-то вроде этого:

hg clone -U yourrepo temprepo # create a temp repo with no files in working dir
cd tmprepo
hg revert --all # put files in working dir
hg forget **   # un-add the files
hg status --ignored --no-status | sed 's/^/exclude /' > ../filemap

, которая даст вам карту файлов, которую вы можете передать в hg convert, которая удалит все добавленные файлы, которые будут игнорироваться, если ваш.hgignore.

Поймите, однако, что запуск конвертирования создает совершенно новый репо, не связанный с вашим предыдущим репо.Все существующие клоны будут непригодны для использования с новым.Обычно это того не стоит.

2 голосов
/ 01 июня 2011

hg convert - это действительно то, что вы хотите использовать.

Вы захотите создать карту файлов (просто текстовый файл), в которой будут перечислены все вещи, которые вы хотите включить, исключить или переименовать:

include subfolder
exclude subfolder/supersub
etc...

Прочитайте следующее для более конкретного примера:
https://www.mercurial -scm.org / вики / ConvertExtension # A - filemap

После того, как вы создали этот файл, вы просто будете использовать следующую команду:

$ hg convert --filemap my_file_map /path/to/source/repo /path/to/dest/repo

Исходное репо не будет изменено, и будет создано десто-репо. Я не хочу просто дословно копировать то, что уже написано в документации, поэтому вот ссылка:

Как сохранить только подкаталог (или запустить в Mercurial Repo):
https://www.mercurial -scm.org / вики / ConvertExtension # Converting_from_Mercurial

...