Удалить конкретный файл из хранилища Subversion? - PullRequest
1 голос
/ 16 июля 2009

У меня есть SVN-репозиторий, в котором есть содержимое из каталога Bin (.exe, .dll, .pdb). Я хотел бы очистить хранилище, чтобы стереть эти файлы и не дать им вернуться.

  1. Как я могу очистить хранилище (без перехода файл за файлом, каталог за каталогом)?
  2. Как я могу предотвратить добавление этих файлов? (В SVNTortoise я добавил глобальный шаблон игнорирования к *.exe *.suo *.pdb /Debug/*, но, похоже, он не работает нормально.

Ответы [ 3 ]

6 голосов
/ 16 июля 2009

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

  • убедитесь, что у вас установлено tortoisesvn
  • извлеките путь к хранилищу, который нужно изменить, в локальную папку
  • используйте инструмент поиска для поиска файлов, таких как * .dll, внутри локальной копии SVN
  • Рекомендую найти в total commander , нажать alt-f7, указать критерии поиска, поиск
  • как только поиск будет завершен, нажмите «feed to listbox»

total commander search

  • выбрать все файлы с помощью ctrl-a
  • щелчок правой кнопкой мыши (по умолчанию в Total Commander вам нужно сделать длинный щелчок правой кнопкой мыши для контекстного меню)
  • выберите опцию tortoisesvn -> удалить и игнорировать список -> удалить и игнорировать xx элементы по расширению

черепаховая масса игнорируется http://img60.imageshack.us/img60/5207/20090716104211.png

  • то же самое можно сделать с каталогами

Теперь вы достигли:

  • в каждом выбранном пути игнорируемые вами расширения файлов будут игнорироваться
  • в будущем, не передавайте эти файлы, игнорируйте их
2 голосов
/ 21 июля 2009

Поскольку первоначальный вопрос был на самом деле о том, как очистить хранилище (и для этого могут быть веские причины: допустимый размер или увеличение размера хранилища), я хотел бы добавить, что единственный способ сделать это - выгрузив репозиторий в файл (svn dump), отфильтровав его содержимое с помощью 'svndumpfilter' и перезагрузив его в новый репозиторий:

0 голосов
/ 16 июля 2009

Эти файлы не должны находиться в хранилище. Поместите только то, что вам нужно для сборки исполняемого файла (исходный код + makefile).

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

Для удаления части не беспокойтесь. Просто создайте новую ревизию без этих файлов.

...