Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Технологии: Разные > Удаление файлов из репозитория mercurial


Автор: Tyrone 11.10.2012, 14:50
Доброго времени суток!

При создания репозитория не учел, что в одной директорий лежат довольно объемные файлы, контроль версии для которых не нужен в принципе. Добавил требуемые директории в .hgignore, но сильно не помогло: в итоге в репе так и остались несколько гигабайт флешных панорам, которые были залиты первым коммитом. Что очень затрудняет процесс клонирования. Из-за этого встал вопрос с полным удалением "лишних" файлов. 

Мне пришли в голову 2 варианта.

Первый
Клонировать реп, убрать директории из .hgignore, удалить их, добавить в .hgignore обратно, и слить с оригинальным репозиторием. Но в этом случае в самом репе фалы всёравно остануться, и его размер не уменьшиться. Я же не ошибаюсь?

Второй
Откатить ревизию, в которой производилось добавление файлов. Т.е. применить команду $hg backout  --merge 1. Но беда в том, что в этой ревизии кроме ненужных фалов добавилось около 5000 нужных. И по крайней мере в сотне из них производились изменения. Витоге для каждого из них меркуриал стал спрашивать что с ними делать:
Цитата

локально файл path/to/file изменен, на отдаленной машине удален использовать измененную:©hanged версию или удалить:(d)elete?


Сам вопрос на текущий момент, во-первых, в том, что меркуриал считает отдаленной машиной, а что локальной?
Как я понял, предлогается либо совсем удалить файлы, добавление которых было оменено backout, либо оставить его, в случае если файл изменялся. Если это так, то мне было бы достаточно ответить на все вопросы ©. Возможно ли как то сделать это автоматом?

Кроме того, если есть еще какой то способ почистить репозиторий - буду очень признателен за подсказку.

Заранее спасибо.

Автор: Tyrone 15.10.2012, 21:36
Всё, разобрался.

Цитата

-Af can be used to remove files from the next revision without deleting them.


$hg rm -Af path/to/dir

Удалило файлы из репа, оставив на диске. Надеюсь кому-нибудь поможет.

Добавлено через 7 минут и 25 секунд
Нет, файлы всё равно болтаются в репозитории.

Автор: bilbobagginz 20.3.2013, 23:23
вам нужно сделать выборный hg convert 
т.е. преобразовать ваш репозиторий в новый, БЕЗ каких-то каталогов, веток, и т.д.
понадобится создание файлов filemap, authormap, branchmap и почитать доки по их применению.

т.е. если ваш репозиторий в каталоге
Код

/data/repo1

надо будет запустить:
Код

hg convert <флажки и параметры> /data/repo1 /data/repo1-clean 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)