Git 2.17 уточняет перемещенный код


Был выпущен Git 2.17 с поддержкой раскрашивания перемещенного кода и новыми хуками для ускорения статуса.

Git — самая популярная система контроля версий. Первоначально разработанный как набор сценариев для поддержки разработки ядра Linux, он быстрый, хорошо сжимается и имеет множество инструментов и ресурсов, которые работают с ним и вокруг него.

Улучшения в перемещении кода устраняют проблему, когда вы смотрите на фиксацию, которая переместила некоторый код. Традиционно это проявляется в том, что строки, которые были перемещены, удаляются в исходном месте и вставляются в новом месте. Это будет выглядеть как простое перемещение кода. Новая опция дает вам более ясное представление о том, что произошло и нужно ли изменить какие-либо строки. Опция —color-move по-разному окрашивает группы перемещенных строк. Используемые цвета определяются пользователем, но вы можете выбрать один цвет для линий, которые были перемещены без изменения, и другой цвет для линий, которые были перемещены и изменены. По умолчанию старые и новые блоки получают свои собственные цвета, а несмежные группы линий окрашиваются независимо.

Второе улучшение сокращает время, необходимое для проверки состояния файлов. Статус Git использует системную статистику, чтобы узнать, изменились ли размер или временная метка каждого файла с момента последней проверки Git. В противном случае предполагается, что его содержимое не изменилось. Однако, хотя это быстрее, чем чтение всех файлов, это все же означает, что git должен вызывать stat () один раз для каждого файла в вашей рабочей копии, что может занять время, если у вас много файлов. Git теперь имеет новую ловушку fsmonitor, которая использует операционную систему для определения того, что изменилось. Хук предоставляет общий интерфейс, в который вы можете подключить любой инструмент, но, учитывая популярность инструмента сторожа, Git поставляется с образцом ловушки для использования сторожа.

Еще одно улучшение — добавление команды поиска объекта. Это дает возможность определить, где объект появился в истории с точки зрения коммитов и путей, позволяя вам выбирать нужные коммиты и отображать их, как вам нравится.

Последнее заметное улучшение — это изменение способа работы grep в контексте функции. Это изменение улучшает способ работы grep, так что при использовании grep с параметром —function-context, который показывает всю функцию, окружающую совпадение, он также показывает любые комментарии перед запуском функции.


Добавить комментарий