#git #cucumber
#git #cucumber
Вопрос:
Я поднял большой PR git, скажем, с 45 тестовыми историями (мы используем Java Cucumber BDD) в одной ветке. Допустим, эти 45 историй принадлежат к 3 категориям, таким как пользователи, устройство, загрузка и т.д., Точно так же, как в каждой категории реализовано 15 историй. Каждая реализация тестовой истории выполняется в 3 файлах,
- файл с функциями
- Файл BDD steps,
- Файл реализации шага BDD. Каждая категория (тестовых примеров) будет иметь указанные выше отдельно 3 файла реализации.
Наш менеджер хотел, чтобы этот большой PR с 45 историями в одной ветке был разделен на в идеале 45 PR, или, по моей идее, поднять не менее 15 PR, каждый PR, содержащий реализацию 3 историй каждый.
Итак, имея это в виду, теперь я начинаю с нетронутой ветки ‘master’, запускаю новую ветку -CA1 (имеется в виду ветка разработки для CategoryA, ветка 1).
Затем, следуя тем же строкам, у меня будет
-
ветви -CA2, CA3, CA4, CA5 Для категории A,
-
ветви -CB1, CB2, CB3, CB4, CB5 Для категории B,
-
ветви -CC1, CC2, CC3, CC4, CB5 Для категории C
Каждая из этих ветвей начнется с извлечения исходной ветви ‘master’, и CA1, CA2, CA3, CA4, CA5 изменят (добавят одну реализацию истории за другой) те же 3 файла реализации, которые упоминались выше.
Аналогично, CB1, CB2, CB3, CB4, CB5 изменят (добавят одну реализацию сюжета за другой) те же 3 файла реализации (имена разные, соответствующие категории B), упомянутые выше.
Аналогично, CC1, CC2, CC3, CC4, CC5 изменят (добавят одну реализацию сюжета за другой) те же 3 файла реализации (имена разные, соответствующие категории C), упомянутые выше.
Теперь возникнет ли проблема после создания 15 меньших PR с 3 историями в каждой вместо большого блоба из 1 PR с 45 историями. Как я об этом думаю??
Когда 1-й PR категории A, имеющий первые 3 реализации сюжета ….. до 15-го PR категории C, имеющего последнюю из 43,44,45-й реализаций тестового сюжета.
Когда эти PR пытались объединить последовательно после некоторых комментариев к обзору и их исправления для каждого PR, насколько хорошо закончится последующее объединение PR? Есть ли у них бесчисленное количество конфликтов, поскольку каждый PR построен поверх нетронутой основной ветви, даже если каждая реализация истории атомарно и индивидуально изменяет 3 файла реализации последовательно?
Есть ли лучший подход? Это связано с тем, что наш парень-рецензент по связям с общественностью жалуется на то, что не может просматривать большой пакет из 45 историй одновременно в течение длительного времени, например, дня, вместо просмотра небольшого PR (с 3 историями), который может занять час или меньше.
Комментарии:
1. Зависят ли истории друг от друга / изменяют ли одни и те же файлы? Если нет, вы могли бы выполнить плавный сброс до того момента, когда вы ответвлялись от master, и создать несколько разных коммитов (в разных ветвях), каждый из которых объединяет одну или несколько историй. В следующий раз: попробуйте создать PR меньшего размера и просмотрите и объедините их по отдельности. Вы сможете исправить конфликты слияния для материалов, над которыми вы только что работали (в любом случае, проще, чем для этих больших PR). Удачи!
2. Да, в каждой категории они выполняют и изменяют один и тот же набор из 3 файлов, о котором я упоминал. Если я вернусь к исходной точке (нетронутой), с которой я начал, я выборочно скопирую и вставлю код для каждого небольшого PR из моей резервной копии файлов кода, таким образом, перейду к повышению всех PR (всего 45) по 3 категориям, мне пришлось бы начинать каждый PR с начальной точки (нетронутое состояние master). Правильно? Затем, когда каждый маленький PR (от 1 до 45) будет просмотрен и в каждом PR будут внесены какие-либо исправления, не приведут ли они к множеству конфликтов, которые мне нужно всегда переносить на все PR?
3. Если все они изменяют одни и те же файлы, вам фактически придется переделывать их, поскольку нет простого способа повторно использовать их как разные наборы файлов для каждого PR. Следующее предложение: вы делали отдельные коммиты для каждой истории? если да, предложите просматривать их для каждого коммита? (при необходимости вы можете объединить несколько коммитов для одной и той же истории вместе).