Tortoise SVN скрытые папки _svn
Они особенно раздражают, когда мне нужно загрузить на сервер веб-решение.
Есть ли способ настроить SVN для создания папок _svn вне моего рабочего каталога?
Если нет, то каков наилучший способ справиться с ними, когда вам нужно скопировать только код?
Обновление: Использование команды "svn export" является проблематичным, потому что есть файлы, которые не находятся под контролем источника, но необходимы как файлы данных .dll, xml или файлы базы данных, и они не будут экспортироваться. Поэтому каждый раз потребуется вручную копировать их в разные подкаталоги из рабочей копии.
Ответы
Ответ 1
В настоящее время невозможно настроить SVN (или TortoiseSVN) для создания каталогов .svn(или _svn) вне рабочей копии. Я считаю, что дорожная карта SVN 1.6 включает пересмотр библиотеки рабочей копии. Возможность размещения административных каталогов в другом месте может возникнуть из этой работы, но я размышляю.
Вы должны использовать команду "svn export" для создания "чистой" копии вашей рабочей копии (т.е. без каталогов _svn). Это работает от клиента командной строки.
Если вы используете TortoiseSVN, вы можете щелкнуть правой кнопкой мыши на рабочей копии и выбрать "Экспорт...". Это потребует от вас папки для экспорта файлов. Кроме того, вы можете перетащить рабочую копию в папку (которая не является рабочей копией), а TortoiseSVN отобразит контекстное меню; среди опций: "SVN Export to here" и "SVN Export all to here", последний также экспортирует файлы, не относящиеся к управлению версиями.
Ответ 2
Используйте "svn export" для создания чистого дерева каталогов.
Ответ 3
Robocopy развертывание...
robocopy {source} {dest} /MIR /XD _svn /XD .svn
Ответ 4
В TortoiseSVN вы можете right щелкнуть по рабочей копии и перетащить ее в другое место. И когда появится всплывающее меню, выберите "SVN Export Here". (Для этого требуется, чтобы весь код в рабочей копии был проверен, поскольку экспорт будет из магистрали, а не из рабочей копии)
Подробнее см. в этих ресурсах:
Ответ 5
если вы используете nant script, чтобы включить развертывание на веб-сервер, он имеет _SVN и _SVN/**, поскольку автоматическое исключает при копировании файлов. nant будет фильтровать множество нежелательных файлов при копировании файлов с помощью своей задачи копирования, включая:
- **/* ~
- **/# * #
- **/. # *
- **/% *%
- **/CVS
- /CVS/
- **/. cvsignore
- **/. svn
- /. svn/
- **/_ svn
- /_ svn/
- **/SCCS
- /SCCS/
- **/vssver.scc
- /_ vti_cnf/
вы можете узнать больше о NANT на домашней странице проекта здесь: Главная страница NANT
Ответ 6
+1 для решения от Исака Саво.
И вы можете сделать XCOPY и исключить папки "/svn":
XCOPY% 1% 1_deploy/EXCLUDE:C:\ExcludeSVN.txt/E/C/I/F/R/Y
Содержимое ExcludeSVN.txt:
/_ СВН
На самом деле, если вы хотите перенаправить на веб-сервер, ваш файл exclude может содержать намного больше:
- .pdb
- .cs
- .resx
- .csproj
- .sln
- .webinfo
- .bak
- .sql
- .zip
- .vspscc
- .vssscc
- .scc
- \Web.config
Предупреждение. Если вы исключили файлы .cs, вы предоставили для повторного копирования файла .css после
Ответ 7
Действительно грязный путь в Windows: создайте копию своего проекта, откройте проводник, перейдите в каталог, в котором находится копия, и выполните поиск для всего, что заканчивается на _svn. Как только поиск будет выполнен, выберите все и нажмите Удалить.
Тьфу! Но он работает очень хорошо.
Ответ 8
Мы используем CruiseControl с robocopy, чтобы создать чистую копию вашего репозитория.
<exec>
<executable>C:\Archivos de programa\Windows Resource Kits\Tools\robocopy.exe</executable>
<buildArgs>E:\CruiseControl\yourproject\Code\trunk\ E:\wwwroot\yourproject *.* /E /XX /XA:H /XO /NDL /NC /NS /NP /XF "*.cache" "*.designer.cs" "*.sln" "*.msbuild" "*.csproj" "*.PDB" "*.user" "*.designer" /XD .svn App_Code obj Properties</buildArgs>
<buildTimeoutSeconds>60</buildTimeoutSeconds>
<successExitCodes>1,0</successExitCodes>
</exec>
Аргументы /XF и /XD исключают файлы и каталоги, которые вы не хотите загружать в производство.
Подробнее о robocopy здесь.
Ответ 9
Если вы хотите удалить все подпапки с именем .svn в окнах
затем создайте командный файл с этим контентом:
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, чтобы случайно не иметь нежелательного эффекта.