Я перебираю Bitbucket , и я не могу найти ни одного репозитория Mercurial , который выглядел бы так, как, я подозреваю, выглядел бы наш репозиторий при условии, что мы перейдем на Mercurial.
Интересно, есть ли такой рабочий процесс, который мы здесь не рассматриваем?
Я говорю о том, что я провел небольшой автоматизированный тест.Мы - 14 человек, которые работают над одним проектом, разделенным на 4 команды.Чтобы смоделировать 14 (я выбрал 10, округленное число) людей, работающих параллельно над кодом, используя Mercurial DVCS, отправляя в тот же центральный главный репозиторий, я написал скрипт.
- Я создал новый "основной репозиторий, а затем клонировал его для 10 виртуальных людей
- Затем я запустил цикл итераций 1000, выбрав случайный клон и выполнив одно из следующих действий:
- 10% времени,сделать извлечение из мастера, объединить, зафиксировать слияние и нажать
- 90% времени, сделать локальное изменение и зафиксировать
Обратите внимание, что я обеспечилчто никогда не будет конфликтов слияния, просто заставляя каждого виртуального человека работать над своим собственным файлом.
Это будет имитировать людей, работающих локально, с помощью коммитов 1+ перед вытягиванием, слиянием и толканием (чтобы избежать 2+ голов вмастер репо).Возможно, этот рабочий процесс неправильный.
Это пример того, как теперь выглядит хранилище (скриншот + ссылка на репо):
хранилище можно найти здесь: http://hg.vkarlsen.no/hgweb.cgi/parallel_test/graph.
Это выглядит ужасно грязно, и, как я уже сказал, я не могу найти ни одного хранилища с похожей историей.Под «грязным» я подразумеваю, что похоже, что более старая история проекта почти всегда будет иметь 10 параллельных ветвей.Близко к вершине, это, конечно, сужается, но оно будет расширяться по мере того, как люди, которые в настоящее время работают в своем локальном репозитории, подталкивают к мастеру.
Итак, у меня есть два вопроса:
- Что-то не так с нашим рабочим процессом (то есть рабочим процессом, который явыложили здесь)?Должны ли мы перебазировать / раздавить / пересадить, передать ответственность за толчок одному человеку, другим вещам, вместо того, как это было сделано здесь?