2013-09-06 4 views
0

Я унаследовал репозиторий Mercurial, который включает в себя некоторые каталоги с двоичными файлами.Mercurial: удаление файлов из локального репозитория для экономии места

Все файлы в вышеупомянутых каталогах были удалены из Mercurial давным-давно, и они больше никогда не будут использоваться.

Я читал, что трудно удалить файлы из Mercurial из-за хэшей изменений.

Есть ли способ удалить данные, либо только из моего локального репозитория, либо, желательно, из репозитория битбакет?

Мне все равно, может ли история этих файлов оставаться в Mercurial, я просто не хочу тратить их на хранение.

Если я не могу удалить файлы из битбакета, могу ли я просто удалить apropos .i файлы в .hg/store/data в моем локальном репозитории? Я бы сохранил файлы .i в битбакете. Из-за этого возникнут какие-либо проблемы с моим локальным хранилищем, либо сами по себе, либо когда вы будете тянуть или нажимать на битбакет? Никто не будет клонировать из моего локального хранилища.

Спасибо.

ответ

3

Вы не можете удалить данные, но вы можете конвертировать и фильтровать репозиторий с расширением Convert. В вашем случае, convert from Mercurial to Mercurial. См. Параметр --filemap.

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

Если вы единственный разработчик, мне кажется безопасным заменить существующий репозиторий bitbucket новым. Но я бы проверил это на репозитории с нуля, сам. Если вы не единственный разработчик, уделите время планированию конверсии. (И убедитесь, что это того стоит. Обычно это нет - диск дешев.)

+0

Есть еще один вопрос: если вы удаляете файлы из истории, вы не сможете развернуть старую версию приложения. Тем не менее, это очень необычно :) – Kirill

+0

Да, я думал, что это само собой разумеется, но, возможно, я должен был это сказать. –

Смежные вопросы