Состоялся релиз текстового клиента для Git в Emacs — проекта Magit 4.0. Изменения в коде открытого инструмента с момента выпуска предыдущей стабильной версии 3.3.0 (вышла три года назад в октябре 2021 года) включают добавление контекстных меню, переделку menu-bar, а также новые команды и множество других функций и исправлений ошибок. Исходный код Magit написан на Emacs Lisp и опубликован на GitHub под лицензией GNU General Public License v3.0.
Инструмент Magit является специализированной консолью конкретно для работы с Git. Первая стабильная версия проекта вышла в 2008 году. Фактически это мощная и удобная консоль «на стероидах», в которой намного быстрее запускаются те же команды Git, по сравнению с многочисленными GUI, а также по сравнению с обычной консолью.
«С Magit вы можете делать почти всё, что вы можете делать при использовании Git в командной строке, но с большей скоростью и при этом используя расширенные функции, которые раньше казались слишком сложными для ежедневного использования. Многие разработчики обнаруживают, что с помощью Magit они могут стать более эффективными пользователями Git», — уточнили авторы проекта.
Команда проекта из 69 контрибуторов отработала 1077 коммитов и за три года во время подготовки к выпуску Magit 4.0. Всего за всё время развития проекта в него было добавлено более 160 тыс. строк кода и отработано более 9 тыс. коммитов.
Основные изменения и доработки в Magit 4.0
• прекращена поддержка Emacs 25;
• удалено несколько функций, переменных и значений переменных, которые были устаревшими в прошлых выпусках (git-commit-fill-column, magit-section-when, face aliases, magit-branch-rename-push-target, %-sequence в magit-branch-name-format);
• удалена библиотека magit-libgit.el, которая была только проверкой концепции, без фактического использования Magit. Упаковщикам (Packagers) не рекомендовалось включать эту библиотеку в пакет Magit, но многие проигнорировали это. Поскольку это вызывало проблемы у многих пользователей, её пришлось удалить;
• завершён переход на новую реализацию magit-completing-read-multiple;
• переписана поддержка Imenu, что привело к появлению нескольких новых функций и значительному сокращению кода;
• добавлена поддержка отображения ошибок, возникающих при очистке раздела. Эту опцию можно использовать для буферов diff и log, чтобы пользователи могли выяснить, что пошло не так;
• добавлено много контекстных меню, которые можно вызывать с помощью мыши или клавиши (меню по умолчанию) и которые являются отличным способом обнаружения контекстно-зависимых команд. Контекстные меню были добавлены в Emacs 28.1 и отключены по умолчанию.
Источник новости: habr.com