Функция очистки/переформатирования кода ReSharper в сравнении с системами управления версиями

StackOverflow https://stackoverflow.com/questions/56313

  •  09-06-2019
  •  | 
  •  

Вопрос

Функция очистки кода ReSharper (с «изменить порядок участников" и "переформатировать код" включено) - это действительно здорово.Вы определяете шаблон макета с помощью XML, затем простая комбинация клавиш реорганизует весь исходный файл (или папку/проект/решение) в соответствии с правилами, которые вы установили в шаблоне.

В любом случае, думаете ли вы, что это может быть проблемой для VCS, таких как subversion, cvs, git и т. д.?Есть ли вероятность того, что это вызовет множество нежелательных конфликтов?

Спасибо.

Это было полезно?

Решение

Да, это определенно вызовет проблемы.Помимо создания конфликтов, которые необходимо разрешать вручную, когда вы возвращаете переформатированный файл, система VCS отмечает почти каждую строку как измененную.Из-за этого вам или вашему товарищу по команде будет сложно оглянуться назад и понять, что и когда изменилось.

Тем не менее, если все автоматически форматируют свой код одинаково (т. е. вы распространяете этот XML-шаблон среди команды), то это может работать хорошо.Проблемы на самом деле возникают только тогда, когда не все делают одно и то же.

Другие советы

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

Думаю, я буду ждать долго.

  • Просто переформатируйте все решение один раз
  • И убедитесь, что каждый разработчик использует Resharper
  • И убедитесь, что параметры форматирования обмен и версии (параметры обмена стилями кода)

Вы можете использовать СтильКоп обеспечить соблюдение всеобъемлющего набора стандартов, который в значительной степени заставляет всех использовать одни и те же стили макета.Затем все, что вам нужно сделать, — это разработать спецификацию стиля кода ReSharper, соответствующую этой, и распространить ее среди команды.

я все еще жду кто-то другой сделает это, а JetBrains прояснит все мелкие детали, которые не полностью поддерживаются, чтобы ReSharper мог гарантировать полное соответствие StyleCop.

Это определенно может вызвать конфликты, поэтому я бы позаботился о том, чтобы вы не переформатировали файлы целиком, если над ними параллельно работают люди.

Это определенно может вызвать конфликты.

Если вы хотите использовать это в многопользовательской среде, то конфигурация Resharper должна отформатировать ваш код в соответствии с набором стандартов, которые применяются в вашей организации, независимо от того, используют ли пользователи Resharper или нет.

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

Согласен с предыдущими ответами, в которых говорится, что конфликты возможны и даже вероятны.

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

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

Возможно, было бы неплохо написать сценарий для проверки каждой версии в истории системы управления версиями, применить очистку кода, а затем вернуть ее в новый репозиторий.Затем используйте этот репозиторий для всей своей работы в будущем.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top