Подтвердить что ты не робот

Контроль версий PHP Web Project

У нас есть проект PHP, который мы хотели бы контролировать версии. В данный момент мы втроем работаем над версией разработки, которая находится во внешней папке, с которой связаны все наши Eclipse IDE, и, следовательно, не контролирует версию.

Как правильно и лучший способ контроля версий это?

У нас настроен SVN, но нам просто нужно найти хороший способ проверить и проверить, который позволяет нам тестировать на сервере разработки. Есть идеи?

4b9b3361

Ответ 1

Мы были в подобной ситуации, и вот что мы в итоге сделали:

  • Настройте две ветки - ветвь релиза и развития.
  • В ветке разработки включите привязку после фиксации, которая развертывает репозиторий на сервере dev, поэтому вы можете протестировать.
  • После того, как вы будете готовы, вы объедините свои изменения в ветвь выпуска. Я также предлагаю положить туда пост-фиксацию для развертывания там.

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

Нам приходилось использовать один сервер разработки, потому что мы использовали запатентованную CMS и столкнулись с проблемами лицензирования. Таким образом, наш post-commit hook был простым FTP-ботом.

Ответ 2

Вот что мы делаем:

  • У каждого разработчика есть виртуальная машина, настроенная как наш сервер интеграции
  • Сервер интеграции имеет пространство для Trunk, каждого пользователя и несколько слотов для веток.
  • Производственный сервер
  • Крючки находятся в Subversion для отправки по электронной почте, когда совершаются коммиты.

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

Как только они закончат все в своем личном пространстве, они заходят на сервер интеграции и проверяют свою ветку, запускают свои тесты и т.д. Когда все, что проходит их ветвь, объединяется в Trunk.

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

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

Ответ 3

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

Ответ 4

Один из способов использования subversion для PHP-разработки - слишком настроить репозиторий для одного или всех трех разработчиков и использовать этот репозиторий, скорее, как инструмент синхронизации, чем настоящий контроль версий.

Вы могли бы,

  • Сделать репо

  • Добавьте всю структуру документа PHP вашего проекта

  • Оформить копию этого репо в нужное место на своем dev-сервере

  • Используйте svn-hook, который активируется при фиксации

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

Крюк находится в:

svn_dir/repo_name/крючки/после фиксации

И может выглядеть так:

/usr/bin/svn up/path_to/webroot --username svn_user --password svn_pass

Это обновит вашу рабочую копию на сервере dev до последней проверки.

Ответ 5

Как насчет чего-то распределенного? Вы можете начать, например, с Mercurial, попробовать разные рабочие процессы и посмотреть, какой из них подходит вам лучше всего.

Ответ 6

Каждый из них может запускать его локально или на своем собственном сервере dev (или даже тот же самый с другим портом...).

Ответ 7

Один из возможных способов (есть, вероятно, лучшие способы):

У каждого из вас должна быть своя собственная проверенная версия проекта.

Сделайте локальную копию сервера на своем компьютере и протестируйте его там в течение дня. Затем в конце каждого дня (или когда-либо) вы объединяете все, что вы готовы тестировать, и проверяете его на сервере dev и проверяете его.

Ответ 8

Другим инструментом, который вы можете использовать для сборки, является TeamCity, который является бесплатным для 20 конфигураций сборки (достаточно для большинства небольших компаний/проектов.) Таким образом, вы можете запускать свои тесты, а также строить расписания.