Как очистить хранилище Mercurial? - PullRequest
1 голос
/ 26 января 2011

Мне нужно удалить папку «uploads» из репозитория со всей его историей, поскольку она содержит только данные нежелательного тестирования.

Пожалуйста, помогите.

1 Ответ

8 голосов
/ 26 января 2011

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

Предположим, следующая структура вашего репо:

/
 src
 doc
 images
 upload

Создайте простой текстовый файл со следующим содержимым

exclude upload

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

Теперь запустите mercurial convert

hg convert --filemap path/to/the/textfile old-repo new-repo

Перейдите в каталог нового репо.Обратите внимание, что Mercurial создал репо с пустым / нулевым оборотом (без содержимого, кроме каталога .hg).Выполните следующее, чтобы обновить ваш последний набор изменений.Обратите внимание, что каталог для загрузки исчез!

cd path/to/new/repo
hg update

ПРЕДУПРЕЖДЕНИЕ. Я не знаю, как это обрабатывает именованные ветви или теги.Ты сам по себе.По крайней мере, вы не изменяете исходный репо.Сделайте столько копий, сколько вам нужно, чтобы сделать это правильно.

...