Вопрос

Особенно они раздражают, когда мне нужно загрузить на сервер веб-решение.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top