2010-04-15 4 views
4

Я переношу репозиторий VSS в SVN и непреднамеренно включал все файлы _vti_cnf, * .scc в первой регистрации. Я хотел бы удалить их из SVN. (Не постоянно, конечно, только в HEAD). Данное приложение довольно велико, и поиск и удаление этих файлов в папке по папкам будет выполняться навсегда.SVN Удалить с помощью шаблона?

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

ответ

4

Ответ Йонаса должен хорошо встряхнуть. Возможно, у вас возникают конфликты, потому что вы удаляете их на уровне файловой системы, минуя контроль Subversion?

Если вы можете использовать TortoiseSVN, следующие работы для меня (= я получаю необходимые команды в контекстном меню):

  • Открыть окно поиска
  • Поиск всех ненужных файлов
  • Выберите их в списке
  • правой кнопкой мыши
  • Выберите «TortoiseSVN»> «Удалить»
  • Зафиксируйте изменения

Done!

Обычная отказ от ответственности при предоставлении версии совет управления, будьте осторожны, есть резервные копии, я не беру на себя ответственность и т.д. и т.п.

+0

Имел проблемы с мозгом - удалял папки, а затем пытался удалить файлы, которые они содержали. Спасибо. (Проще всего 10 очков весь день, я готов поспорить!) –

1

Не можете ли вы просто grep (или какую-либо другую операцию, которая находит файлы) * .scc-файлы в извлеченной версии, удалить их и затем зафиксировать?

+0

Вы бы подумали, не так ли? Я пробовал это, но по некоторым причинам он, похоже, вводит конфликты. Возможно, я просто схожу с ума. –

2

Если вы работаете в Linux или Mac OS, вы могли бы пойти с find, как

$ find . -type d -name "_vti_cnf" -exec svn delete {} \; 

Я больше не пользователь SVN (и никогда не используется VSS), хотя, так что вы можете модифицировать командной строки и/или попробуйте сначала с -print.

+0

К сожалению, я запускаю Windows. Или, к счастью, в зависимости от вашего POV.=/ –

+1

, что будет, к сожалению, тогда;) –

+0

будет ли это работать для вас? http://mattypenny.blogspot.com/2007/04/dos-equivalent-to-unix-find-name-print.html 'dir/B/S_vti_cnf' затем скопировать-вставить результат в текстовый редактор и добавьте 'svn delete' перед каждой строкой (например, с помощью регулярного выражения) –

3

Через окна командной строки можно выполнить рекурсивный поиск файлов с «для» и вызвать «СВН удалить» для каждого файла соответствия,

C:\> for /r %i in (abc*def.sql) do svn delete %i 

NB: Помните, что в пакетном файле вы должны заменить% Я с %% я.

Чтобы узнать обо всех других флагов, которые можно использовать с «для» (это швейцарский армейский нож поиска и разбора) используйте команду справки,

C:\> help for 
0

Или использовать PowerShell:

Foreach ($file in Get-Childitem * -include "*.txt") 
{ 
    svn del $file.name 
} 

где * .txt - это подстановочный знак и * указывает текущий каталог, где искать файлы, которые нужно удалить