====== Лог изменений модулей ======
Форма **"Лог изменений модулей"** открывается из главного меню программы кнопкой **"Лог изменений модулей"**.\\
Форма отображает разработчиков, которые внесли последние изменения файл проекта.\\
{{:pasted:20200418-092736.png}}\\
==== Информационные поля ====
* **Количество записей в логе** - общее количество записей выгруженных в файл лога 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
log -l 100000 -b default -T "{rev}:::{branch}:::{date(date,""%%d.%%m.%%Y"")}:::{author}:::{file_mods}\r\n" --pager false >hg.log
где
* **** - Папка проекта Mercurial, там где находится папка .hg, значение берется из настройки **"HGWrk"**
* **** - Исполняемый файл 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:::Нестеров Егор :::ForAll/BusinessLinks.pas Him/QuestionnaireSurvey.pas
...
Поля отделяются друг от друга **":::"**. Рассмотрим третью строку:\\
- **10014** - номер ревизии
- **default** - наименование ветки репозитория
- **14.04.2020** - дата ревизии
- **Нестеров Егор %%%%** - разработчик, который вносил изменения и его e-mail
- **ForAll/BusinessLinks.pas Him/QuestionnaireSurvey.pas** - список измененных модулей, разделенных пробелом
=== Загрузка лога изменений модулей из файла ===
При загрузке в объект заполняются поля
* Rev - номер ревизии
* Branch - наименование ветки репозитория
* DateRev - дата ревизии
* Devel - разработчик, который последний вносил изменения
* Mail - e-mail разработчик
* PasFile - измененный модуль
Из списка записей исключаются
* Повторные описания файлов (оставляются только записи о последней корректировке файла),
* Файлы типа .dfm
===== Дополнительная информация =====
* [[:dw_TFormLogDelphi|Лог компиляции проекта]]\\
* [[:dw_TFormWarningTypes|Типы предупреждений]]\\
* [[:dw_TFormOrder|Поручения разработчикам]]\\
[[develop:at_delphiwarnings|Назад]]\\