Таким образом, в основном вы хотите знать, как заставить члена команды с разными уровнями навыков использовать SCM и хорошо играть друг с другом.
Бай-ин от вашей команды является приоритетом # 1.Если вы не можете заставить их усвоить, то вам остается предоставить путь наименьшего сопротивления.Так что вам действительно нужно быть гибким.Может быть неправильный и правильный путь для использования инструмента, но если пользователи не примут правильный путь , тогда неправильно лучше, чем они вообще его не используют.То, как вы достигнете этого баланса, будет отличаться для каждой команды.
Это плохая идея - создавать специфичные для роли ветви для «проблемных точек» (команда копирования), где они могутподтолкнуть к репо, тогда наши разработчики объединят свою работу с фактической веткой проекта?
Нет, может быть, это не оптимально, но если это облегчает работу команды копирования, то этос чем ты остался.Возможно, вы могли бы пойти еще дальше и настроить каждого пользователя с его собственной веткой.Тогда им никогда не придется беспокоиться об объединении изменений других людей.
Должен ли я по-прежнему пытаться навязать задачу для каждой ветви для всех остальных?
У каждого разработчика должна быть уникальная "локальная" ветвь, которая не отслеживает восходящую ветвь.Например, используйте что-то общее, например mydev
.Это позволяет им легко переключаться между своим локальным кодом и текущей веткой восходящего потока.
Вам не обязательно заставлять каждого создавать локальную ветку для каждой задачи, потому что в конце концов выЯ хочу, чтобы они просто перенесли свою рабочую ветвь на восходящую и зафиксировали, чтобы она просто стала ускоренной (т.е. линейной фиксацией).
Теперь для задач, над которыми работают несколько разработчиков, илифункция, которая включает в себя группы небольших коммитов, тогда yes имеет смысл заставить их создавать новую конкретную ветку задач.Когда они объединяются, они могут убедиться, что принудительно выполняют коммит, тогда ясно, что набор коммитов сгруппирован, и все они были частью определенной задачи.Фиксация слияния будет отображаться как merged branch feature-X
.
Должен ли я выполнять задачу для каждой ветви для всех, но позволить команде копирования создавать очень широкие задачи?
Это действительно зависит от того, сколько бай-инов вы можете получить от команды копирования.Я думаю, что если они действительно запутаются с инструментами DVCS, то вам придется сокращаться до тех пор, пока вы не найдете то, что не окажет слишком большого влияния.
Одним из решений является помощь одного из ваших разработчиков.интегрировать изменения в командах копирования в другую ветку, на которую все остальные будут смотреть.Это поможет переложить кривую обучения инструмента на кого-то за пределами команды копирования.
Обычно есть команда / группа / человек, который считается ролью администратора длярепо кто делает решающие слияния?
Да, это имеет смысл.Однако самое замечательное в SCM заключается в том, что каждый сможет вернуться и выполнить обзор кода после слияния.Поэтому, если слияние нарушает код, вы можете либо добавить исправления после слияния, либо удалить слияние и выполнить его заново.
(есть альтернативный предложенный рабочий процесс, в котором авторы копийне трогать источник?)
Ну, одним из возможных методов является модель Integration Manager .Разработчики вносят изменения в свои собственные репозитории общих ресурсов, но это зависит от менеджера интеграции, чтобы объединить изменения в репозиторий blessed .
Я уверен, что есть другие методы, которые могутработа для ваших пользователей, но этот вопрос немного двусмысленный.