Стратегии DVCS для небольшой команды смешанной роли? - PullRequest
3 голосов
/ 23 июня 2011

Я много читал и пробовал GIT, GIT Tortoise, Tortoise SVN и PlasticSCM, чтобы найти правильный источник контроля для нашей небольшой команды (5-10 пользователей).

Некоторыеопыт работы в нашей команде: 6 авторов / редакторов (2 удаленных), 2 разработчика, 2 графических дизайнера.Мы не всегда работаем над проектами вместе, иногда до 5 из нас могут работать над данным проектом.Я не беспокоюсь о разработчиках с DVCS, мое беспокойство в основном связано с другими ролями, которые (самым приятным образом) ограничены в своих технических возможностях.Некоторые из наших авторов копий обновляют несколько исходных файлов (HTML, PDF и добавляя концептуальную графику) для создания живых неверсированных каталогов сборки (резервное копирование как build.23.06.11.new.new.final.zip!).Команда копирования и GD не будет иметь времени или, если быть откровенно честным, склонности к слиянию / разрешению конфликтов или, возможно, даже не забудет переключать ветки.

Несколько вопросов SO пролили свет на то, что кажетсябыть довольно последовательным подходом - основной ствол (без мусора в стволе!) с командами, имеющими свои собственные ветви, и имеющими ветки выпуска и т. д.

Каждый раз, когда я перечитываю ссылки ...

... и Google в целом, я все равно в конечном итоге задаю себе те же вопросы:

  1. Это плохая идея для создания роли-специфичные ветки для «проблемных точек» (команда копирования), где они могут подтолкнуть к репо, тогда наши разработчики объединят свою работу с фактической веткой проекта?
  2. Должен ли я все еще пытаться обеспечить выполнение заданий на-вывет для всех остальных?
  3. Должен ли я выполнять задачу для каждой ветви для каждый но разрешить команде по копированию создавать очень широкие задачи?
  4. Обычно есть команда / группа / человек, которого считают ролью администратора для репо, который выполняет важные слияния?
  5. (есть альтернативный предложенный рабочий процесс, когда авторы копий не касаются источника?)

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

... хорошая новость в том, что, надеюсь, через несколько лет я буду готов форсироватьвсем перейти на контроль версий!Мы также остановились на PlasticSCM за его интуитивно понятный графический интерфейс и интеграцию с Windows.

Лучшим ответом на этот вопрос будет попытка ответить на 4 приведенных выше пункта - если хотите, - пункт 5, объясните слабые места, если это возможно, идайте совет, догадайтесь и т. д.

ура!

1 Ответ

1 голос
/ 23 июня 2011

Таким образом, в основном вы хотите знать, как заставить члена команды с разными уровнями навыков использовать SCM и хорошо играть друг с другом.

Бай-ин от вашей команды является приоритетом # 1.Если вы не можете заставить их усвоить, то вам остается предоставить путь наименьшего сопротивления.Так что вам действительно нужно быть гибким.Может быть неправильный и правильный путь для использования инструмента, но если пользователи не примут правильный путь , тогда неправильно лучше, чем они вообще его не используют.То, как вы достигнете этого баланса, будет отличаться для каждой команды.

Это плохая идея - создавать специфичные для роли ветви для «проблемных точек» (команда копирования), где они могутподтолкнуть к репо, тогда наши разработчики объединят свою работу с фактической веткой проекта?

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

Должен ли я по-прежнему пытаться навязать задачу для каждой ветви для всех остальных?

У каждого разработчика должна быть уникальная "локальная" ветвь, которая не отслеживает восходящую ветвь.Например, используйте что-то общее, например mydev.Это позволяет им легко переключаться между своим локальным кодом и текущей веткой восходящего потока.

Вам не обязательно заставлять каждого создавать локальную ветку для каждой задачи, потому что в конце концов выЯ хочу, чтобы они просто перенесли свою рабочую ветвь на восходящую и зафиксировали, чтобы она просто стала ускоренной (т.е. линейной фиксацией).

Теперь для задач, над которыми работают несколько разработчиков, илифункция, которая включает в себя группы небольших коммитов, тогда yes имеет смысл заставить их создавать новую конкретную ветку задач.Когда они объединяются, они могут убедиться, что принудительно выполняют коммит, тогда ясно, что набор коммитов сгруппирован, и все они были частью определенной задачи.Фиксация слияния будет отображаться как merged branch feature-X.

Должен ли я выполнять задачу для каждой ветви для всех, но позволить команде копирования создавать очень широкие задачи?

Это действительно зависит от того, сколько бай-инов вы можете получить от команды копирования.Я думаю, что если они действительно запутаются с инструментами DVCS, то вам придется сокращаться до тех пор, пока вы не найдете то, что не окажет слишком большого влияния.

Одним из решений является помощь одного из ваших разработчиков.интегрировать изменения в командах копирования в другую ветку, на которую все остальные будут смотреть.Это поможет переложить кривую обучения инструмента на кого-то за пределами команды копирования.

Обычно есть команда / группа / человек, который считается ролью администратора длярепо кто делает решающие слияния?

Да, это имеет смысл.Однако самое замечательное в SCM заключается в том, что каждый сможет вернуться и выполнить обзор кода после слияния.Поэтому, если слияние нарушает код, вы можете либо добавить исправления после слияния, либо удалить слияние и выполнить его заново.

(есть альтернативный предложенный рабочий процесс, в котором авторы копийне трогать источник?)

Ну, одним из возможных методов является модель Integration Manager .Разработчики вносят изменения в свои собственные репозитории общих ресурсов, но это зависит от менеджера интеграции, чтобы объединить изменения в репозиторий blessed .

Я уверен, что есть другие методы, которые могутработа для ваших пользователей, но этот вопрос немного двусмысленный.

...