Как вы предотвращаете блокировку ваших веток Mercurial (или Git)? - PullRequest
2 голосов
/ 18 мая 2010

Я хочу выпустить этот сценарий и посмотреть, каким будет самый объективный, ванильно-меркуриальный способ исправить это.

Предположим, у меня есть следующие ветки в моем централизованном репозитории Mercurial для моего централизованного, нераспределенного веб-приложения:

repository
    default
    feature1
    feature2
    bugs

Предположим, десять разработчиков внесли исправления в ветку 'ошибок' и отправили. Теперь, допустим, пришло время выпустить. Итак, я провожу несколько финальных тестов и внезапно замечаю проблему с исправлением ошибки - и эта проблема займет несколько дополнительных часов. Итак, теперь у меня есть сверхкритические исправления ошибок, которые должны быть выпущены, но ветка 'ошибок' заблокирована, и я не могу слиться с веткой 'по умолчанию' и выпустить, потому что также будет выпущена половина исправленной ошибки, и я не могу этого допустить.

Так что мне делать?

Должен ли я отменить изменения в ветке ошибок, объединить ошибки с настройками по умолчанию и выпустить? Что, если есть десять коммитов, связанных с этой конкретной проблемой-исправлением - найти и отменить все эти? Это звучит волосато, но допустим, я это делаю. Как насчет того, когда разработчик, который должен исправить проблему-исправление-ошибку, извлекает и обновляет свой репозиторий? Его изменения все будут отменены. Он МОЖЕТ отменить возврат ... это путь?

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

Что вы все делаете?

1 Ответ

1 голос
/ 18 мая 2010

Я бы создал новую ветку (чтобы сделать релиз):

  • начиная с текущей ошибки "заблокированной" ветки
  • с исправлением проблемного исправления

И я бы оставил ветку "ошибка" как есть. Нет вишни сбор.

...