Будучи разработчиком в течение нескольких лет, это то, что я должен знать, но не знаю.
Я работаю над выпущенным продуктом в небольшой команде.Я являюсь основным разработчиком, фиксирующим большую часть кода, но есть пара других разработчиков, которые время от времени делают это.В настоящее время у нас есть промежуточный сервер, на котором работает Hudson CI, который собирается после каждого коммита.Производство обновляется вручную с помощью простой команды svn up, когда транк стабилен и протестирован.
Обычно это работает нормально, за исключением тех случаев, когда у нас есть ситуации, требующие срочных / срочных изменений в производстве, когда код не завершен в транке.
Как я могу настроить репо в соответствии с этой ситуацией?Я думал, этот ответ был хорошим ответом, но он все еще немного у меня в голове.
Я думаю, что при обновлении производства создайте ветку с этой ревизией.Однако, если мне нужно срочно внести исправления в продукт, как я могу получить доступ к этой ветке и как я могу обновить продукт, извлекая из этой ветви, а не из ствола?Как мне убедиться, что любые срочные исправления для производственной ветви также переданы в магистраль?
т.е.В этой ситуации я хочу найти лучшее решение, потому что это происходило несколько раз
- Rev 1000 обновляется при производстве
- Rev 1001-1005 - новые запросы функций / ошибкаисправления, которые будут включены в следующую версию
- Rev 1006 - это срочное исправление, которое необходимо запустить в производство
- Rev 1007-1009 - это дополнительные обновления функций
- Rev 1010должна быть следующая версия, обновленная до рабочей версии
Обновление:
После прочтения раздела ветвления Книги SVN я подумываю о следующей настройке.
Создать ветку, когда будете готовы нажать на продукт
svn copy /trunk /branches/production_01 -m 'Production release'
На производстве переключитесь на производствоветвь
svn switch /branches/production_01
Если необходимо срочное исправление, разработчику необходимо внести изменения в ветку:
svn checkout /branches/production_01
// make changes
svn merge /trunk # make sure changes get merged into trunk as well
svn commit -m 'Urgent fix
На производстве, обновление до последней версиич
svn update
Похоже ли это на наш процесс?