Насколько хорошо зависимость пробелов Python взаимодействует с системой управления версиями в отношении слияния?
-
02-07-2019 - |
Вопрос
Мне интересно, оказывает ли необходимость изменить отступы кода для настройки вложенности какие-либо негативные последствия для слияния изменений в такой системе, как SVN.
Решение
Это работает нормально, если все участники проекта согласились использовать один и тот же стиль пробелов (пробелы или табуляции).
Но я видел случаи, когда разработчик преобразовывал весь файл из пробелов в табуляцию (думаю, в Eclipse это была функция, привязанная к Ctrl+Tab!), что делало обнаружение различий практически невозможным.
Другие советы
Я использовал Python с SVN и Mercurial, и у меня не было проблем со слиянием.
Все зависит от того, как выполняется различие - и я подозреваю, что оно посимвольное, что позволит заметить разницу между одним уровнем отступа и другим.
Обычно системы контроля версий по умолчанию объединяются построчно.Я обнаружил, что объединение кода Python ничем не отличается от объединения любого другого исходного кода с разумными отступами.Если один программист обертывает блок кода в if
(с отступом всего блока), а другой программист что-то модифицирует внутри блока, то возникнет конфликт слияния.К счастью, конфликт в этом случае очень легко разрешить.
Если вы используете внешний инструмент слияния, ваш инструмент может поддерживать более подробные алгоритмы текстового слияния, которые автоматически учитывают описанный выше сценарий.