Лог изменений модулей

Форма «Лог изменений модулей» открывается из главного меню программы кнопкой «Лог изменений модулей».
Форма отображает разработчиков, которые внесли последние изменения файл проекта.

Информационные поля

  • Количество записей в логе - общее количество записей выгруженных в файл лога hg.log.
  • Количество записей в объекте -количество записей в объекте меньше чем «Количество записей в логе» так, как иключаются повторные записи для модулей и исключаются файлы типа dfm.
  • Папка проекта Mercurial - Папка проекта Mercurial из настройки HGWrk

Поля в таблице

  • Ревизия - номер версии репозитория.
  • Дата - дата ревизии.
  • Модуль - наименование файла исправленного модуля относительно папки репозитория.
  • Разработчик - программист, который вносил изменения.
  • E-MAIL - E-MAIL программиста
  • Ветка - всегда default

Кнопки

  • Импорт лога изменений модулей - повторно загружает значения в объект LogHG.

Импорт лога изменений модулей

  • Выгрузка во временный файл лога изменений модулей hg.log.
  • Загрузка лога изменений модулей из временного файла hg.log в объект LogHG, который отображается на форме

Выгрузка в файл лога изменений модулей

Mercurial, он же Hg — система управления версиями. Консольная программа hg.exe позволяет выгружать отчеты в текстовый файл с различным содержанием. Нас интересует информация о том кто последний исправлял файл с предупреждением. Для этого создается и запускается командный файл hglog.cmd с командой

cd /D <HGWrk>
<HGExe> log  -l 100000 -b default -T "{rev}:::{branch}:::{date(date,""%%d.%%m.%%Y"")}:::{author}:::{file_mods}\r\n" --pager false >hg.log

где

  • <HGWrk> - Папка проекта Mercurial, там где находится папка .hg, значение берется из настройки «HGWrk»
  • <HGExe> - Исполняемый файл Mercurial, значение берется из настройки «HGExe»
  • c:\Program Files\TortoiseHg\hg.exe - исполняемый файл Mercurial
  • log - операция - формировать отчет
  • -l 10000 - выгружать 10000 строк
  • -b default - выгружать данные только по ветке default
  • -T «{rev}:::{branch}:::{date(date,»«% %d.% %m.% %Y»«)}:::{author}:::{file_mods}\r\n» - список полей для выгрузки
  • –pager false - не разбивать отчет на страницы
  • d:\__hglog0.log - файл с логом изменений

Пример hglog.cmd

cd /D E:\_Projects\Agbis.dxe\
"c:\Program Files\TortoiseHg\hg.exe" log  -l 10000 -b default -T "{rev}:::{branch}:::{date(date,""%%d.%%m.%%Y"")}:::{author}:::{file_mods}\r\n" --pager false>E:\_Projects\AgbisTest\AT_DelphiWarnings\exe\hg.log

В результате получается таблица вида

...
10014:::default:::14.04.2020:::Нестеров Егор <nesterovegor55@gmail.com>:::ForAll/BusinessLinks.pas Him/QuestionnaireSurvey.pas
...

Поля отделяются друг от друга «:::«. Рассмотрим третью строку:

  1. 10014 - номер ревизии
  2. default - наименование ветки репозитория
  3. 14.04.2020 - дата ревизии
  4. Нестеров Егор <nesterovegor55@gmail.com> - разработчик, который вносил изменения и его e-mail
  5. ForAll/BusinessLinks.pas Him/QuestionnaireSurvey.pas - список измененных модулей, разделенных пробелом

Загрузка лога изменений модулей из файла

При загрузке в объект заполняются поля

  • Rev - номер ревизии
  • Branch - наименование ветки репозитория
  • DateRev - дата ревизии
  • Devel - разработчик, который последний вносил изменения
  • Mail - e-mail разработчик
  • PasFile - измененный модуль

Из списка записей исключаются

  • Повторные описания файлов (оставляются только записи о последней корректировке файла),
  • Файлы типа .dfm

Дополнительная информация