Сведения о вопросе

GANGST1ER

16:03, 1st July, 2020

Теги

php   svn   version-control   cvs    

Управление версиями PHP веб-проект

Просмотров: 553   Ответов: 8

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

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

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



  Сведения об ответе

$DOLLAR

18:03, 1st July, 2020

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

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

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

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


  Сведения об ответе

lats

18:03, 1st July, 2020

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

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

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

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

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

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


  Сведения об ответе

DO__IT

18:03, 1st July, 2020

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


  Сведения об ответе

nYU

18:03, 1st July, 2020

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


  Сведения об ответе

piter

18:03, 1st July, 2020

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

Вы могли бы,

  • Сделайте РЕПО

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

  • Извлеките копию этого РЕПО в нужное место на вашем сервере разработки

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

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

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

svn_dir/repo_name/hooks/post-commit

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

/usr/bin/svn до /path_to/webroot svn_user --логин --пароль svn_pass

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


  Сведения об ответе

darknet

18:03, 1st July, 2020

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


  Сведения об ответе

lool

18:03, 1st July, 2020

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

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

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


  Сведения об ответе

piter

18:03, 1st July, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться