Лучшие практики использования Subversion на сервере разработки?

Я установил VisualSVN на сервере, который использую для «постановки» написанных мной веб-приложений - в настоящее время это классические приложения ASP / VBScript. На моей рабочей станции разработки, на которой я пишу код, установлен TortoiseSVN, и я могу подключиться к созданной мной папке репозитория - я использую следующую структуру:

development (repository)
  -- my_application
     -- branches
     -- tags
     -- trunk
  -- another_application
     -- branches
     -- tags
     -- trunk

Я также настроил IIS и указал на другую папку на жестком диске сервера для хранения обслуживаемых файлов. Есть ли «лучшая практика» для отправки коммитов в папку, связанную с IIS, поэтому после фиксации / итерации я могу дать своим пользователям URL-адрес для просмотра демонстрационного сайта (а также для его тестирования)? Мне стыдно сказать, что я никогда раньше по-настоящему не использовал контроль версий, поэтому я немного не понимаю, как лучше всего его использовать.


1
932
3

Ответы:

Я вижу, вы сделали свою домашнюю работу, макет вашего репозитория настроен по книге. Я не уверен, что VisualSVN делает с точки зрения извлечения, но если вы хотите внести изменения на веб-сайт, это легко сделать либо в интерактивном режиме, либо по расписанию.

cd в webhome

svn co [svn-project-uri]


Прежде всего, рекомендую хранить разные приложения в разных репозиториях.

Каждая фиксация увеличивает номер ревизии, поэтому вы можете получить следующую ситуацию: первое приложение не имеет обновлений в течение длительного времени, но его номер ревизии постоянно увеличивается из-за обновлений второго приложения.


Решено

Во-первых, я согласен с другими комментариями, ваш формат репозитория - это книга с ветками, тегами и стволом. Я также рекомендовал бы разделить репозиторий для каждого проекта, как уже упоминалось. Я участвовал в проектах с одним общим репозиторием и с разделенными репозиториями, и разделенные репозитории работают лучше. Кроме того, если когда-либо была причина ограничить доступ к одному из репозиториев (т. Е. Вы позволяли кому-то другому доступ к репозиторию, и вы хотели, чтобы они видели только один из двух проектов), их проще разделить.

В любом случае я бы предложил использовать MSBuild для вашего развертывания. Вы можете создать файл проекта MSBuild, который извлекается из SVN, создает файл вашего решения, а затем развертывает его на веб-сайте. Вы должны добавить такую ​​строку в файл проекта MSBuild, чтобы выполнить проверку:

<Exec command = "svn checkout %22https://server:8443/svn/Project/Trunk/%22 %22c:\Project%22"/>

Вы также можете делать такие вещи, как создание проекта для проверки определенной версии / тега после выпуска версии. При выборе этого маршрута для развертывания есть довольно много гибкости в том, что можно сделать.

Дополнительные сведения о MSBuild можно найти в Справочном руководстве Microsoft MSBuild здесь.