Скрытые папки _svn Tortoise SVN
-
03-07-2019 - |
Вопрос
Особенно они раздражают, когда мне нужно загрузить на сервер веб-решение.
Есть ли способ настроить SVN для создания папок _svn вне моего рабочего каталога?Если нет, то как лучше всего с ними бороться, когда нужно скопировать только код?
Обновлять: Использование команды «svn Export» проблематично, поскольку существуют файлы, которые не находятся под контролем источника, но необходимы, например файлы .dll, файлы данных xml или файлы базы данных, и они не будут экспортированы.Поэтому придется каждый раз вручную копировать их в разные подкаталоги из рабочей копии.
Решение
В настоящее время невозможно настроить SVN (или TortoiseSVN) для создания каталогов .svn (или _svn) вне рабочей копии. Я считаю, что план SVN 1.6 включает в себя пересмотр библиотеки рабочих копий. Возможность размещать административные каталоги где-то еще может получиться из этой работы, но я размышляю.
Вы должны использовать " svn export " команда для создания " чистой " копия вашей рабочей копии (т.е. без каталогов _svn). Это работает из клиента командной строки.
Если вы используете TortoiseSVN, вы можете щелкнуть правой кнопкой мыши рабочую копию и выбрать " Экспорт ... " ;. Это попросит у вас папку для экспорта файлов в. Кроме того, вы можете перетащить рабочую копию правой кнопкой мыши в папку (которая не является рабочей копией), и TortoiseSVN вызовет контекстное меню; Среди вариантов - «Экспорт в SVN сюда». и «SVN Export all to here», последний также экспортирует файлы, не находящиеся под контролем версий .
Другие советы
Используйте " svn export " создать чистое дерево каталогов.
Robocopy развертывание ...
robocopy {source} {dest} /MIR /XD _svn /XD .svn
В TortoiseSVN вы можете верно нажмите на рабочую копию и перетащите ее в другое место.И когда появится всплывающее меню, выберите «Экспортировать SVN сюда».(Для этого необходимо, чтобы весь код в рабочей копии был проверен, поскольку экспорт будет осуществляться из магистральной и нет из рабочей копии)
Подробности смотрите на этих ресурсах:
- http://tortoisesvn.net/most-forgotten-feature (о щелчке правой кнопкой мыши + перетаскивании контекстного меню)
- http://tortoisesvn.net/node/343 (Об удалении версии рабочей копии svn).Если вы воспользуетесь этим методом, я думать что ваши неверсированные файлы останутся в папке, но я не пробовал...
если вы используете сценарий nant для включения развертывания на веб-сервере, он имеет _SVN и _SVN/** в качестве автоматического исключения при копировании файлов.nant будет отфильтровывать множество ненужных файлов при копировании файлов с помощью своей задачи копирования, включая:
- **/*~
- **/#*#
- **/.#*
- **/%*%
- **/CVS
- /CVS/
- **/.cvsignore
- **/.svn
- /.svn/
- **/_svn
- /_svn/
- **/СККС
- /SCCS/
- **/vssver.scc
- /_vti_cnf/
Вы можете прочитать больше о NANT на домашней странице проекта здесь: НАНТ Главная
+1 за решение Исака Саво.
И вы можете выполнить XCOPY и исключить папки «/svn»:
XCOPY %1 %1_deploy /EXCLUDE:C:\ExcludeSVN.txt /E /C /I /F /R /Y
Содержимое ExcludeSVN.txt:
/_svn
Фактически, если вы хотите загрузить на веб-сервер, ваш файл исключения может содержать гораздо больше:
- .pdb
- .cs
- .resx
- .csproj
- .sln
- .webinfo
- .бак
- .sql
- .zip
- .vspscc
- .vssscc
- .scc
- \Web.config
Предупреждение :Если вы исключите файлы .cs, вы дали возможность повторно скопировать файл .css после
Действительно грязный способ в Windows:Создайте копию своего проекта, откройте Проводник, перейдите в каталог, в котором находится копия, и выполните поиск всего, что заканчивается на _svn.После завершения поиска выберите все и нажмите «Удалить».
Фу!Но это работает Действительно хорошо.
Мы используем 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 здесь .
Если вы хотите удалить все подпапки с именем .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 / удалить-все-СВН-файлы-в-окна /
Помните, что приведенный выше код имеет .svn, тогда как код в ссылке имеет только * svn, так что лучше иметь .svn, чтобы случайно не иметь нежелательного эффекта. Р>