Каков наилучший способ разрешить конфликты git после переформатирования всей базы кода Python с помощью черного?

Предположим, есть большой проект, не соответствующий определенному стандарту форматирования Python, и вы хотите переформатировать весь код Python с помощью средства форматирования Python black, и предположим, что крупномасштабный проект довольно большой (скажем, ~ 2000 файлов Python) и около 30 человек, работающих над указанным проектом, каждый из которых работает над несколькими функциями в нескольких ветках. Также могут быть разные полузамороженные основные ветки, которые иногда объединяются с более новым кодом.

Использование черного цвета во всей кодовой базе вызовет суперконфликты с любой открытой веткой... Как бы вы выполнили этот процесс и минимизировали бы конфликты?


person JavaNoob    schedule 15.12.2020    source источник
comment
Кажется, вам нужно либо применить черный цвет для всех ваших ветвей, либо использовать -Xignore-all-space при слиянии (и, возможно, перемещении) в git, если черный цвет меняет только пробелы ( stackoverflow.com/questions/9776527/ ).   -  person fluffy    schedule 15.12.2020
comment
Он добавляет конечные запятые и заменяет каждое вхождение ' на a , что меняет МНОГО СТРОК. Он также добавляет круглые скобки везде, где ему нравится.   -  person JavaNoob    schedule 15.12.2020
comment
Создайте тестовую ветку A на вашем master/dev, примените черный цвет ко (всем) файлам Python и сделайте коммит. После этого создайте еще одну тестовую ветку B из вашей самой большой функциональной ветки, в которой есть как можно больше изменений (не имеет значения, находится ли ветка в полуготовом состоянии, но многие изменения лучше для тестирования), применяйте черный цвет только к файлам, которые изменились внутри ветки функций и сделайте отдельную фиксацию после применения черного цвета. Как только это будет сделано, переключитесь на ветку A и попробуйте git merge B. Это должно пройти гладко, поскольку обе тестовые ветки используют одну и ту же политику форматирования прямо в исходном коде.   -  person fluffy    schedule 15.12.2020
comment
На самом деле это не тема для stackoverflow - это скорее вопрос softwareengineering.stackexchange.com. Тем не менее, довольно часто для этого используется день флага. Это дает всем подгруппам целевую дату, к которой нужно стремиться. В случае переформатирования с использованием черного цвета это просто означает, что каждый должен иметь черный цвет и директивы, доступные на их собственных машинах.   -  person torek    schedule 16.12.2020