Skip to content

About

Git-панель для 1C:EDT: подготовка файлов, коммиты, отправка, ветки и история.

Topics

Resources

Stars

28 stars

Watchers

2 watching

Forks

Repository files navigation

Git Flow для 1C:EDT

Git Flow — панель для работы с Git в 1C:EDT. В ней можно подготовить файлы к коммиту, написать сообщение, переключить ветку, получить или отправить изменения и найти нужный коммит в истории. Основные операции доступны из одной панели.

Установить плагин · Видеообзор · Telegram автора · Сообщить об ошибке

Панель Git Flow в 1C:EDT: подготовка файлов, сообщение коммита и граф истории

Установка в EDT

Добавьте в EDT сайт установки и обновления:

https://oxotka.github.io/git-flow-edt/
  1. Откройте Справка → Установить новое ПО… → Добавить….
  2. Укажите имя Git Flow и вставьте ссылку в поле адреса.
  3. Выберите компонент Git Flow, завершите установку и перезапустите EDT.
  4. Откройте перспективу Git или панель через Окно → Показать представление → Другие… → Git Flow → Git.

Для обновления откройте Справка → Проверить обновления. Если плагин уже установлен из ZIP, добавьте ссылку в доступные сайты ПО в настройках EDT, затем проверьте обновления.

Для установки из файла скачайте ZIP из последнего релиза и выберите Добавить… → Архив… в окне установки. Архив одинаков для Windows и macOS; распаковывать его не нужно.

Совместимость

Git Flow проверен в 1C:EDT 2026.1.3 на Windows и macOS. Ранее также проверен в 1C:EDT 2025.2.6 на Windows.

В 0.17.2 возвращено переключение через JGit без дополнительного согласования со снимками EDT, добавленного в 0.17.1. По результатам пользовательской проверки согласование замедляло переключение и не устраняло повторное отображение изменений. Сохранение локальных изменений и обновление проектов после checkout остаются. Подробности: диагностика переключения.

Первый коммит

Откройте в EDT проект, подключенный к Git-репозиторию, и внесите изменения. Панель Git доступна в перспективе Git или через Окно → Показать представление → Другие… → Git Flow → Git.

Если репозиториев несколько, выберите нужный вверху панели.

  1. Нажмите + рядом с файлами, которые хотите включить в коммит. Они появятся в разделе Подготовлено. Кнопка − убирает файл из коммита, сохраняя правки.
  2. Напишите сообщение коммита в поле над списком файлов.
  3. Нажмите Коммит и отправка. Чтобы создать только локальный коммит, отключите отправку в настройках кнопкой с шестеренкой — основная кнопка будет называться Коммит.

По умолчанию коммит включает только подготовленные изменения. В шестеренке можно включить Автоматическая подготовка изменений: при пустом разделе Подготовлено будут включены все файлы из списка Изменения, в том числе новые и удаленные. Если есть подготовленные изменения, коммит включает только их. При включенной автоматической подготовке пустой раздел Подготовлено скрыт и появляется после подготовки файлов.

Когда изменений нет и у локальной ветки еще нет связи с удаленной, кнопка Опубликовать ветку отправляет существующие коммиты в origin и настраивает связь с одноименной веткой. Сообщение коммита не требуется.

Название ветки вверху панели открывает выбор веток. Круговая стрелка рядом со счетчиками входящих и исходящих коммитов запускает синхронизацию: проверку сервера, получение или отправку изменений в зависимости от состояния ветки.

Видеообзор

Смотреть видеообзор Git Flow для 1C:EDT

Смотреть на YouTube.

Возможности

  • Работать с файлами. Панель показывает измененные и подготовленные файлы. Кнопки + и − добавляют файл в будущий коммит или убирают его оттуда. Через контекстное меню можно открыть файл, сравнить изменения и посмотреть историю. Файлы репозитория вне проектов EDT тоже можно открыть и сравнить, включая конфликты. Отмену правок плагин выполняет после подтверждения.
  • Создавать коммиты. Сообщение можно написать в несколько строк и отправить коммит сочетанием Ctrl+Enter. В настройках можно включить оформление первой строки как заголовка: она выделится полужирным. Счетчик покажет, сколько символов из 72 осталось. При превышении он станет красным и покажет превышение отрицательным числом. Подсказка о заголовке и описании показывается при той же настройке. Между заголовком и описанием плагин добавит пустую строку при создании коммита. Если оформление выключено, поле остается обычным многострочным вводом. Отправка на сервер после коммита включена по умолчанию; ее можно отключить кнопкой с шестеренкой. Сообщение синхронизируется с полем в штатном Индексировании Git, если обе панели показывают один репозиторий. После создания коммита оба поля очищаются.
  • Предлагать сообщение коммита. Если установлен Workmate, в контекстном меню поля сообщения доступна команда Предложить сообщение коммита (1С:Напарник). Напарник составляет вариант по подготовленным изменениям; при включенной автоматической подготовке и пустом индексе учитывает все изменения из списка, не меняя подготовку файлов. Текущий текст сообщения передается как контекст.
  • Синхронизировать ветку. Плагин проверяет изменения на сервере перед отправкой. Если ветка уже изменилась, он пытается сначала получить новые коммиты. При конфликте помогает перейти к штатному слиянию в EDT. После такого слияния отправку нужно запустить отдельно. Принудительную отправку (force push) плагин не делает.
  • Выбирать и настраивать ветки. Ветки и теги показаны деревом. Их можно искать и добавлять в избранное. В списке видны автор, сообщение последнего коммита и время его создания. Список можно сортировать по активности или имени, в прямом и обратном порядке. В меню ⚙ настраивается иерархия веток. Это общая настройка EDT: при первом запуске Git Flow включает ее, а последующие изменения действуют во всех представлениях EDT. То же дерево веток доступно в штатном окне слияния EDT. При переключении ветки плагин временно сохраняет подготовленные, измененные и новые файлы, а затем возвращает их.
  • Управлять ветками из контекстного меню. Локальную ветку можно переключить, переименовать или удалить. Если в ней есть неслитые коммиты, перед удалением появится подтверждение. Для текущей ветки доступны получение и отправка изменений. У удаленной ветки можно создать локальную копию или переименовать ее. При переименовании удаленной ветки связанная локальная ветка получает то же имя. Если у локальной ветки настроена связь с удаленной, Git Flow сначала предлагает переименовать обе и меняет локальную только после успешного переименования удаленной.
  • Временно убирать изменения. Быстрый стеш сохраняет текущие правки, а команда возврата восстанавливает последний стеш. При создании ветки через мастер EDT плагин временно сохраняет локальные изменения и возвращает их после закрытия мастера.
  • Показывать историю. Под списком файлов видны коммиты текущей ветки с графом, автором и сообщениями. Для коммита доступны сравнение, копирование хеша и другие действия через контекстное меню. Поиск находит совпадения по сообщению, автору или началу хеша во всей истории текущей ветки; нажмите F3, чтобы перейти к следующему совпадению. На текущем коммите (HEAD) доступна Слить… — штатная команда из Групповой разработки EDT.

В штатном окне Индексирование Git кнопка Фиксировать + Push (или Отправить, когда коммитить нечего) использует проверку удаленной ветки от Git Flow.

Для разработчиков

Сборка из исходников

Нужны JDK 17–21, Maven 3.9+ и EDT 2026.1.3, указанная в releng/edt-2026-1.target. Локальная ЕДТ нужна только для компиляции и не упаковывается в архив.

В target-файле указан локальный путь к установленной EDT на macOS. Перед сборкой замените его на каталог plugins своей установки EDT.

./.tools/bin/mvn verify

Проверка запускает весь набор core-тестов и тесты логики UI без открытия окон, включая отображение этапов операций, расчет процентов и передачу отмены. Автоматическая подготовка перед коммитом обрабатывает всю видимую выборку без дробления на пачки. Отмена до начала оставляет индекс прежним; при отмене во время подготовки выборка завершается, а создание коммита не продолжается. Состав и порядок списков подготовленных и неподготовленных файлов проверяются на временных Git-репозиториях через статус JGit и кеш EGit, в том числе при конфликте. Соответствия типов метаданных 1С и иконок, а также наличие текстовых подписей на русском и английском языках проверяются отдельно от SWT. Для истории проверяются подписи веток и тегов, detached HEAD, порядок после слияния и границы страниц обоих способов чтения. Поисковая сессия проверяется на смену репозитория, ветки и HEAD, повторный поиск, отмену и ошибки фоновой задачи. Преобразование путей объектов, модулей и форм в подписи проверяется без SWT на русском и английском языках, с доступными и отсутствующими иконками. Загрузка страниц проверяется на порядок коммитов, отбрасывание устаревших результатов и переход к найденному коммиту после догрузки контекста. Для иконок проверяется кеширование найденных и отсутствующих ресурсов; кеш сбрасывается при закрытии представления. Тестовый модуль не входит в установочный p2 ZIP.

Синтетическое сравнение массовой подготовки файлов запускается отдельно:

./.tools/bin/mvn verify -Dtest=WorkingChangesBenchmark

Бенчмарк создает временные репозитории с 800, 1000 и 5000 измененных файлов, проверяет состав индекса, сохранение частично подготовленного файла и отмену. Он не входит в обычный прогон тестов; результаты и ограничения описаны в исходном отчете и проверке подготовки всей выборки. Поведение интерфейса в EDT проверяется отдельно вручную.

После успешной сборки ZIP-репозиторий обновления находится в dev.edt.gitflow.repository/target/. Этот архив можно выбрать в мастере установки EDT. Для запуска второго экземпляра EDT с плагином из исходников используйте конфигурацию PDE с продуктом com._1c.g5.v8.dt.product.application.rcp.

Обратная связь

Нашли ошибку или хотите предложить улучшение? Создайте issue. Для ошибки укажите версии EDT и плагина, операционную систему и шаги воспроизведения.

Лицензия

MIT. Copyright © 2026 Никита Арипов.

Публикация сайта обновления

GitHub Actions публикует сайт на GitHub Pages после выхода стабильного релиза. Workflow берет p2 ZIP из последнего опубликованного релиза и размещает его содержимое по постоянному адресу. Плагин повторно не собирается. При изменении страницы сайта выполняется публикация с тем же последним релизом; ее также можно запустить вручную через Actions → Publish EDT update site.

About

Git-панель для 1C:EDT: подготовка файлов, коммиты, отправка, ветки и история.

Topics

Resources

Stars

28 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages