Subversion для веб-разработки - PullRequest
4 голосов
/ 14 января 2009

Я прочитал много статей о Subversion и отправке информации на веб-сервер, но у меня все еще возникают трудности.

Я могу понять основы создания хранилища, проверки и т. Д., Но мне нужна помощь для части веб-сервера.

Я использую Apache, а Subverion работает на сервере разработки, на котором я работаю.

Теперь я создаю свой репозиторий в папке **htdocs** вместе с моими живыми веб-документами или я создаю его вне папки htdocs.;

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

Я хочу знать, во-первых, правильный путь, а во-вторых, как мне автоматически переместить файлы из недавно обновленного репозитория в папку live web?

Пожалуйста, любые советы, которые я искал долгое время. Спасибо

EDIT

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

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

Ответы [ 7 ]

5 голосов
/ 14 января 2009

Существует стандарт структуры папок в вашем хранилище, который обычно состоит из как минимум "ствола" и "ветви" папки. Это связано с тем, что Subversion позволяет вам создать ветку (она копирует со ствола и допускает одновременные коммиты), чтобы вы могли работать, скажем, «версия 2» вашего сайта.

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

repo
  - trunk
    - htdocs
  - branch
    - htdocs

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

4 голосов
/ 14 января 2009

Этот вопрос о переполнении стека расскажет о том, что вы пытаетесь сделать: Как я могу использовать перехваты после фиксации для копирования зафиксированных файлов в веб-каталог из SVN?

2 голосов
/ 14 января 2009

У нас есть скрипт post commit, прикрепленный к действию commit, которое экспортирует содержимое SVN в каталоги Apache при каждом совершении коммита. Местом размещения кодов по умолчанию является наш сайт для разработки и тестирования.

С дополнительным комментарием в коммите мы экспортируем на рабочий сервер.

2 голосов
/ 14 января 2009

Я не уверен, что именно вы пытаетесь сделать, но между SVN (системой контроля исходного кода) и системой непрерывной интеграции (например, Cruise Control или Team City) есть разделение.

Вы можете настроить SVN через HTTP с помощью Apache, но это не то же самое, что развертывание веб-решения на работающем сервере.

В SVN нет ничего, что могло бы автоматически развернуть ваше решение на веб-сервере. Это необходимо сделать с помощью сценария автоматической сборки и развертывания, который лучше всего делать с системой CI.

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

Для этого я использовал CC.NET и Team City ; они оба работают нормально с некоторыми настройками.

1 голос
/ 14 января 2009

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

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

1 голос
/ 14 января 2009

Я считаю, что в справке TortoiseSVN (файл TSVN-PDF) есть очень хорошая документация для большинства ваших вопросов. Это было отправной точкой для всех моих вопросов и того, как все настроить с помощью SVN. Даже если он написан для Windows, он описывает, как настроить SVN с Apache и так далее ...

Возможно, вы не хотите обновлять свой живой веб-сайт каждый раз, когда вы регистрируете что-то в своем хранилище. Для обновления как репозитория, так и живого веб-сайта вы можете использовать сценарии сборки (возможно, используя NAnt , если вы пишете свой сайт с ASP.NET).

0 голосов
/ 14 января 2009

Просто еще одна заметка ...

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

...