У мене є каталог із багатьма підкаталогами. У кожній папці є папка диверсії (.svn).
Чи є у вікні команда, яка пройде кожну папку та підкаталог та видалить папку .svn?
Або мені доведеться створювати сценарій або робити це вручну?
У мене є каталог із багатьма підкаталогами. У кожній папці є папка диверсії (.svn).
Чи є у вікні команда, яка пройде кожну папку та підкаталог та видалить папку .svn?
Або мені доведеться створювати сценарій або робити це вручну?
Відповіді:
Використовуйте svn export
команду, щоб експортувати робочу копію Subversion у нову "чисту" структуру каталогів, яка не має .svn
каталогів.
svn export
svn export WCPath NewPath
Створіть пакетний файл litte з наступним рядком і запустіть його з батьківської папки, в якій знаходяться каталоги .svn.
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q "%%G"
Ви також можете оформити рядок нижче прямо з командного рядка:
FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q "%G"
Зробіть це в PowerShell.
ПРИМІТКА: Це рекурсивно, тому переконайтесь, що ви знаходитесь у правильному каталозі!
gci -fil '.svn' -r -force | ri -r -force
Ось решта мого сценарію очищення вихідного дерева.
gci -fil 'bin' -r -force | ri -r -force
gci -fil 'obj' -r -force | ri -r -force
gci -fil '_ReSharper*' -r -force | ri -r -force
gci -fil '*.suo' -r -force | ri -r -force
gci -fil '*.user' -r -force | ri -r -force
Якщо ви хочете видалити всі підпапки з іменем .svn у Windows, створіть пакетний файл із таким вмістом:
for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do (
rd /s /q "%%i"
)
збережіть його у файлі del_All_Dot_SVN_Folders.cmd . Запусти його. Ви закінчили.
Завдяки http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/
Пам'ятайте, що наведений вище код має .svn, тоді як код у посиланні має лише * svn, тому краще мати .svn, щоб випадково не мати небажаного ефекту.
Просто введіть .svn у вікно пошуку Провідника файлів, а потім виберіть та видаліть усі результати пошуку (див. Коментар JB Nizet). Цей метод, звичайно, також може бути використаний для швидкого видалення каталогів obj та bin, наприклад, при організації SVN-архівів.
Хоча OP попросив рішення командного рядка, він також вказав використання Windows і розглянув можливість видалення вручну, тому метод Провідника файлів все одно можна розглянути, особливо тому, що це найшвидший метод і не покладається на такі інструменти, як експорт svn.
Хоча OP вже вибрав прийняту відповідь, ця відповідь може бути корисною для інших. Принаймні це було корисно мені, давньому користувачеві Linux / Windows, який віддає перевагу командним рядкам і вперше дізнався про поле пошуку за допомогою цього повідомлення :-)
Вибачте за запізнення на вечірку, але ось ще одне в одному рядку:
for /r %i in (.svn) do rmdir /s /q "%i"
Я знаю, що пізно відповідати на це, але, мабуть, існує простий спосіб, ЯКЩО у вас є eclipse та плагін svn, встановлений на вашому eclipse. Клацніть правою кнопкою миші на проекті, перейдіть до Team-> disconnect Відкриється спливаюче вікно, де ви виберете перший варіант: "Також видаліть метаінформацію SVN із файлової системи." Це автоматично видалить усі папки SVN, а також файли властивостей svn, про які ви можете забути іноді під час видалення лише папок .svn!
Як важливий момент, якщо ви хочете запустити оболонку видалити папки .svn, вам може знадобитися -depth аргумент для запобігання команди пошуку входу в каталог , який був просто знищений і показуючи дурні повідомлення про помилки , як , наприклад ,
"find: ./.svn: No such file or directory"
Щоб позбутися цієї помилки, ви можете використовувати команду find наступним чином:
cd [dir_to_delete_svn_folders]
find . -depth -name .svn -exec rm -fr {} \;