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". (Для этого требуется, чтобы весь код в рабочей копии был проверен, поскольку экспорт будет из магистрали, а не из рабочей копии)

Подробнее см. в этих ресурсах:

  • http://tortoisesvn.net/most-forgotten-feature (о контекстном меню правого клика и перетаскивания)
  • http://tortoisesvn.net/node/343 (об отказе от рабочей копии svn). Если вы используете этот метод, я думаю, что ваши неверсированные файлы останутся в папке, но я не пробовал...

Ответ 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, чтобы случайно не иметь нежелательного эффекта.