#svn #mercurial
#svn #mercurial
Вопрос:
У нас есть менеджер выпуска, который объединяет множество ветвей в ветку выпуска, и иногда возникают конфликты логического слияния, и только разработчики могут решить, как правильно объединить. Есть ли хороший способ (svn, mercurial — не имеет значения), как отправлять разработчикам эти конфликты, а затем возвращать исправленные файлы в release manager, кроме как попросить их сделать реальное слияние svn / hg.
Ответ №1:
Обычно разработчики объединяются в своих изменениях, а затем нажимают, что менеджер выпуска извлекает из уже объединенного репозитория разработчика.
Слияние — это кодирование, и, хотя я уверен, что ваш менеджер релизов вполне способен объединяться в ветвях, попробуйте создать рабочий процесс, в котором, когда функция выполнена, разработчик выполняет:
- hg pull release-кандидат-репозиторий
- hg merge # их head с недавно извлеченной head
- hg push-релиз-кандидат-репозиторий
Ответ №2:
Mercurial
[ui]
merge = internal:merge
С помощью internal:merge Mercurial вставляет маркеры конфликтов, показывающие конфликтующие части. Вы можете выбрать один, другой или ни один.
$ cat hello.py
print 'hello world'
<<<<<<< local
print "charlie says: it is now Wed Apr 21 19:22:15 EDT 2010"
=======
print "baker says: it is now Wed Apr 21 19:20:34 EDT 2010"
>>>>>>> other
ReleaseManager только что отправил (или проинформировал разработчика об инциденте) файл с маркерами
Комментарии:
1. Из моего POV — изменить рабочий процесс и исключить немой RM — более мощное решение. У RM будет достаточно работы, но не так глупо , как «объединить код других» — слияния — это работа разработчиков