SVN для разработки веб-сервера - PullRequest
1 голос
/ 16 августа 2011

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

Хорошо, я настроил репозиторий под поддоменом (http://svn.website.com), и извлек его в субдомен разработки (http://dev.website.com). Я также планирую извлечь копию в оперативной среде (http://www.website.com). Идея это сначала разработка на поддомене dev, фиксация, когда он будет готов к запуску, а затем * 1006. * в реальной среде. Я прочитал все за и против между экспортом и обновлением, и обновление кажется лучшим для этого проекта, потому что мы часто будет совершать небольшие изменения / изменения кода, и экспорт будет выглядеть как излишнее. Я также установил соответствующие директивы, чтобы избежать доступа к каталогу .svn. Похоже, я на правильном пути с этим? Что-нибудь, что я должен знать?

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

1 Ответ

4 голосов
/ 16 августа 2011

Звучит так, будто ты растешь!

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

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

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

    Что касается обеспечения работы разработчиков с самым последним набором файлов, вы действительно хотите это сделать?Если вы обрабатываете серьезное количество изображений, это займет много места на жестком диске.Конечно, с CDN или другим хранилищем данных нет ничего сложного, но хотите ли вы, чтобы ваши разработчики загружали 1000 новых фотографий каждый раз, когда они появляются?

    Если вы не решитесь на это, я быПредложите добавить некоторый код в ваше приложение для автоматического выполнения svn add, svn ci, когда svn status имеет определенный результат (т. е. это скрипт, который можно вызывать с помощью cron, или каждый раз, когда добавляются новые медиа).Вы также можете проверить использование svn-хуков (они есть и в git), чтобы уведомлять вас об обновлении репо.

    Надеюсь, это поможет.Я настоятельно не рекомендую включать все файлы, загружаемые пользователями, если у вас нет действительно веской причины для этого.Сложность, которую я собираюсь добавить, будет болезненной. =)

    Удачи и добро пожаловать в StackOverflow!

...