Контроль версий PHP Web Project - PullRequest
31 голосов
/ 07 августа 2008

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

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

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

Ответы [ 8 ]

26 голосов
/ 07 августа 2008

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

  • Настройка двух веток - ветка релиза и разработки.
  • Для ветки разработки включите хук post-commit, который развертывает репозиторий на сервере dev, чтобы вы могли тестировать.
  • Когда вы будете готовы, вы объедините свои изменения с веткой релиза. Я бы также посоветовал добавить хук post-commit для развертывания там.

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

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

5 голосов
/ 08 августа 2008

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

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

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

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

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

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

3 голосов
/ 08 августа 2008

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

2 голосов
/ 18 марта 2010

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

2 голосов
/ 07 августа 2008

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

Вы могли бы,

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

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

  • Оформить копию этого репо в правильном месте на вашем сервере разработчика

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

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

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

svn_dir / repo_name / Крючки / после совершения

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

/ usr / bin / svn up / path_to / webroot - имя пользователя svn_user --password svn_pass

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

0 голосов
/ 19 сентября 2008

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

0 голосов
/ 07 августа 2008

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

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

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

0 голосов
/ 07 августа 2008

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

...