Этот вопрос не имеет никакого отношения к DVCS или нет. Это проблема ПРОЦЕССА, а не проблема технологии. Вот мой взгляд на то, что делают многие люди, и процесс, который продвигает ClearCase UCM:
/project/trunk
/branches
/release-1.0-JIRA1023
/release-1.0-darthcoder-JIRA1029
/darthcoder-JIRA1029
/branches/release-1.0-tfix <- This is the patch trunk. Main trunk is future dev
Когда я исправлю свою ошибку, я переведу ее обратно в транк или в конкретную версию, которую пытаюсь исправить. Я объединюсь с release-1.0-tfix и транком, потому что это нужно исправить в нескольких местах. Когда я закончу, я удаляю ветку и перехожу к следующему вопросу. Поэтому у меня есть две ветви кода с исправлением JIRA, пока я тестирую его и работаю над проблемами (если исправление сильно отличается).
Но ничто не продвигается к стволам или деревьям -tfix, если не выполняется успешный цикл сборки / тестирования, и у него есть свойство JIRA для отслеживания. Таким образом, вы можете привязать каждое отдельное исправление к разработчику и ветви и убедиться, что все исправлено правильно. Кроме того, эти проблемы не теряются (о, JIRA1029 сделал это в версии 1.2? Ну, вы можете проверить это, посмотрев JIRA1029 в своем хранилище. Вам никогда не придется GUESS, и это делает разработку программного обеспечения повторяемой и приближает нас к ошибкам == 0.