54k + файлов в каталоге svn - как удалить - PullRequest
0 голосов
/ 20 ноября 2011

У меня есть каталог в SVN с 54 000 файлов в нем.Я переставил каталог, поэтому у меня теперь есть 54 папки в каждом файле ниже 1000 и передал его в SVN.Но я не могу удалить 54k файлов из SVN.С удалением у меня ушло много времени, но теперь, когда я пытаюсь сделать коммит, я просто получаю: svn: Сетевое соединение неожиданно закрылось

Есть ли другой способ удалить эти файлы легко и быстро ??

Ответы [ 2 ]

1 голос
/ 20 ноября 2011

В Linux используйте команду find вместе с командой XArgs.

http://www.computerhope.com/unix/ufind.htm
http://www.computerhope.com/unix/xargs.htm

Что-то вроде:

find . -name *.foo -print | xargs rm

сделает свое дело.

Посмотрите на 2 ссылки, которые я предоставил для получения дополнительной информации, -name позволяет вам использовать обычные символы подстановки, такие как * &? , -regex позволяет вам больше контролировать, используя полную строку регулярного выражения.

для тестирования вам нужно убедиться, что вы используете что-то вроде:

find . -name *.foo -print | xargs echo

чтобы случайно не удалить, пока не узнаете, каким будет список файлов.

Под окнами это немного сложнее.

Мой прошлый опыт заключался в том, что вы должны продолжать поиск, удаляя несколько сотен, а затем снова искать, используя окно поиска в верхнем правом углу окна проводника.

Я уже давно хотел написать небольшой инструмент для работы с этим сценарием, просто еще не дошел до него.

0 голосов
/ 20 ноября 2011

Я предполагаю, что исходная структура папок была также в SVN. Я хотел бы вернуться к исходной структуре и создать скрипт, который вместо этого будет выдавать [svn move][1] для каждого файла / каталога. Делая это таким образом, вы сохраните историю коммитов и для файлов, и это предпочтительный способ реорганизации вашего исходного дерева.

Вы также можете перейти в структуру папок и зафиксировать их небольшими порциями. Вы теряете преимущество одного атомного коммита, который можно откатить. Размышляя вслух, вы можете смоделировать это путем ветвления, реорганизовать ветвь (используя svn move!), А затем объединить ветвь обратно в транк - обратите внимание, что вы должны использовать svn move для файла / папок в ветке, иначе svn не быть в состоянии помочь вам с слиянием.

...