Как заставить Subversion работать с автоматически сгенерированными файлами? - PullRequest
3 голосов
/ 24 апреля 2009

Я использую ASP.NET Web Deployment Projects с TortoiseSVN и VisualSVN, но это общий вопрос о сгенерированных файлах в Subversion.

Проект веб-развертывания автоматически генерирует параллельную версию вашего веб-сайта для "развертывания", в которой весь код разбирается и собирается в одну сборку. Моя файловая структура:

  • Магистральные
  • Магистраль / MyProject (корень сайта)
  • Trunk / MyProject_deploy (корневой каталог проекта развертывания)
  • Trunk / MyProject_deploy / Release (корень сайта развертывания, автоматически генерируется)

Вот проблема: MyProject_deploy / Release регенерируется при сборке (в режиме Release). Каталог удаляется и создается заново, поэтому я теряю все метаданные .svn; и когда я иду на фиксацию, я получаю статус «Препятствие», который я посмотрел и означает, что на сервере есть неуправляемая локальная папка с тем же именем, что и управляемая папка.

(Я мог бы просто проигнорировать папку Release, но я хочу выполнить FTP-развертывание непосредственно с сервера Subversion.)

Как лучше всего обращаться с автоматически генерируемыми файлами в Subversion?

Ответы [ 3 ]

14 голосов
/ 24 апреля 2009

Установить свойство svn: ignore. Не добавляйте их в свою систему контроля версий. Все, что генерируется процессом сборки, там не принадлежит. Есть что-то, что нужно для завершения процесса сборки.

Я бы порекомендовал добавить к смеси непрерывный сервер интеграции, такой как CruiseControl.NET, - он может построить проект из исходного кода, а затем выполнить развертывание из этого. Это позволит вам использовать 2 лучших метода вместо 1 и все равно решить вашу проблему.

1 голос
/ 22 ноября 2009

Это также проблема при использовании проектов установки для создания выходных данных установщика Windows.

Один из вариантов - изменить Имя выходного файла , чтобы сгенерированные файлы помещались в корень проекта развертывания, а не в подпапку «Release».

В случае проекта установки, я генерировал один файл MSI, и это сработало хорошо - никакие папки не удаляются / воссоздаются, поэтому нет ошибок SVN, и он чист, только с двумя файлами в корне проекта развертывания папка.

1 голос
/ 24 апреля 2009

Если вы используете Visual Studio, можете ли вы определить события до и после сборки, чтобы переместить каталог (или каталоги) .svn из Release перед сборкой, а затем обратно после нее?

...