mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-06-12 23:57:25 +02:00
Merge branch 'feature/ONECICD-9' into develop
# Conflicts: # features/ВыполнениеПрекоммита.feature # src/Классы/КомандаПрекоммит.os
This commit is contained in:
commit
3b640a7360
@ -78,3 +78,13 @@
|
|||||||
И я выполняю команду "git" с параметрами "add --all"
|
И я выполняю команду "git" с параметрами "add --all"
|
||||||
И я выполняю команду "git" с параметрами "commit -m addFile"
|
И я выполняю команду "git" с параметрами "commit -m addFile"
|
||||||
Тогда я вижу в консоли вывод "Нет доступных сценариев обработки файлов"
|
Тогда я вижу в консоли вывод "Нет доступных сценариев обработки файлов"
|
||||||
|
|
||||||
|
Сценарий: В коммит попадают только проиндексированные файлы
|
||||||
|
Когда Я копирую файл "tests\fixtures\demo\DemoОбработка.epf" в каталог репозитория "РабочийКаталог"
|
||||||
|
И я фиксирую изменения в репозитории "РабочийКаталог" с комментарием "demo коммит"
|
||||||
|
И в каталоге "src" репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\Module.bsl"
|
||||||
|
И я создаю файл "РабочийКаталог/src/ФайлСТекстом.bsl" с текстом "текст178"
|
||||||
|
И я выполняю команду "git" с параметрами "add --all"
|
||||||
|
И я создаю файл "РабочийКаталог\src\epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\Module.bsl" с текстом "текст178"
|
||||||
|
И я выполняю команду "git" с параметрами "commit -m addFile"
|
||||||
|
Тогда Вывод команды "git" не содержит "Module.bsl"
|
||||||
|
@ -86,7 +86,7 @@
|
|||||||
|
|
||||||
Ит = 0;
|
Ит = 0;
|
||||||
ПараметрыОбработки = Новый Структура("Лог, ФайлыДляПостОбработки, ИзмененныеКаталоги, КаталогРепозитория, УправлениеНастройками",
|
ПараметрыОбработки = Новый Структура("Лог, ФайлыДляПостОбработки, ИзмененныеКаталоги, КаталогРепозитория, УправлениеНастройками",
|
||||||
Лог, Новый Массив, Новый Массив, КаталогРепозитория, УправлениеНастройками);
|
Лог, Новый Массив, Новый Массив, КаталогРепозитория, УправлениеНастройками);
|
||||||
Пока Ит < ЖурналИзменений.Количество() Цикл
|
Пока Ит < ЖурналИзменений.Количество() Цикл
|
||||||
|
|
||||||
АнализируемыйФайл = Новый Файл(ОбъединитьПути(КаталогРепозитория, ЖурналИзменений[Ит].ИмяФайла));
|
АнализируемыйФайл = Новый Файл(ОбъединитьПути(КаталогРепозитория, ЖурналИзменений[Ит].ИмяФайла));
|
||||||
@ -135,44 +135,22 @@
|
|||||||
ПараметрыКомандыGit = Новый Массив;
|
ПараметрыКомандыGit = Новый Массив;
|
||||||
ПараметрыКомандыGit.Добавить("diff-index --name-status --cached HEAD");
|
ПараметрыКомандыGit.Добавить("diff-index --name-status --cached HEAD");
|
||||||
РепозиторийGit.ВыполнитьКоманду(ПараметрыКомандыGit);
|
РепозиторийGit.ВыполнитьКоманду(ПараметрыКомандыGit);
|
||||||
ПараметрыКомандыGit = Новый Массив;
|
РезультатВывода = РепозиторийGit.ПолучитьВыводКоманды();
|
||||||
ПараметрыКомандыGit.Добавить("status --porcelain");
|
СтрокиВывода = СтрРазделить(РезультатВывода, Символы.ПС);
|
||||||
РепозиторийGit.ВыполнитьКоманду(ПараметрыКомандыGit);
|
ЖурналИзменений = Новый Массив;
|
||||||
РезультатВывода = РепозиторийGit.ПолучитьВыводКоманды();
|
|
||||||
СтрокиВывода = СтрРазделить(РезультатВывода, Символы.ПС);
|
|
||||||
|
|
||||||
ЖурналИзменений = Новый Массив;
|
|
||||||
Для Каждого СтрокаВывода Из СтрокиВывода Цикл
|
Для Каждого СтрокаВывода Из СтрокиВывода Цикл
|
||||||
|
|
||||||
Лог.Отладка(" <%1>", СтрокаВывода);
|
Лог.Отладка(" <%1>", СтрокаВывода);
|
||||||
СтрокаВывода = СокрЛП(СтрокаВывода);
|
|
||||||
ПозицияПробела = СтрНайти(СтрокаВывода, " ");
|
|
||||||
СимволИзменения = Лев(СтрокаВывода, 1);
|
|
||||||
Если СимволИзменения = "?" Тогда
|
|
||||||
|
|
||||||
Продолжить;
|
СтрокаВывода = СокрЛП(СтрокаВывода);
|
||||||
|
ПозицияПробела = СтрНайти(СтрокаВывода, Символы.Таб);
|
||||||
КонецЕсли;
|
СимволИзменения = Лев(СтрокаВывода, 1);
|
||||||
|
|
||||||
ТипИзменения = ВариантИзмененийФайловGit.ОпределитьВариантИзменения(СимволИзменения);
|
|
||||||
|
|
||||||
ИмяФайла = СокрЛП(СтрЗаменить(Сред(СтрокаВывода, ПозицияПробела + 1), """", ""));
|
|
||||||
|
|
||||||
Если ТипИзменения = ВариантИзмененийФайловGit.Переименован
|
|
||||||
ИЛИ ТипИзменения = ВариантИзмененийФайловGit.Скопирован Тогда
|
|
||||||
|
|
||||||
// это два события - удален и добавлен
|
|
||||||
ПозицияСтрелки = СтрНайти(ИмяФайла, "->");
|
|
||||||
ИмяФайлаУдален = СокрЛП(Лев(ИмяФайла, ПозицияСтрелки - 1));
|
|
||||||
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", ИмяФайлаУдален, ВариантИзмененийФайловGit.Удален));
|
|
||||||
Лог.Отладка(" В журнале git %2 файл <%1>", ИмяФайлаУдален, ВариантИзмененийФайловGit.Удален);
|
|
||||||
|
|
||||||
ИмяФайла = СокрЛП(Сред(ИмяФайла, ПозицияСтрелки + 2));
|
|
||||||
ТипИзменения = ВариантИзмененийФайловGit.Добавлен;
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
|
ТипИзменения = ВариантИзмененийФайловGit.ОпределитьВариантИзменения(СимволИзменения);
|
||||||
|
ИмяФайла = СокрЛП(СтрЗаменить(Сред(СтрокаВывода, ПозицияПробела + 1), """", ""));
|
||||||
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", ИмяФайла, ТипИзменения));
|
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", ИмяФайла, ТипИзменения));
|
||||||
|
|
||||||
Лог.Отладка(" В журнале git %2 файл <%1>", ИмяФайла, ТипИзменения);
|
Лог.Отладка(" В журнале git %2 файл <%1>", ИмяФайла, ТипИзменения);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
@ -197,6 +175,7 @@
|
|||||||
ЛокальныйКаталог = УправлениеНастройками.Настройка("Precommt4onecСценарии\КаталогЛокальныхСценариев");
|
ЛокальныйКаталог = УправлениеНастройками.Настройка("Precommt4onecСценарии\КаталогЛокальныхСценариев");
|
||||||
ПутьКЛокальнымСценариям = ОбъединитьПути(КаталогРепозитория, ЛокальныйКаталог);
|
ПутьКЛокальнымСценариям = ОбъединитьПути(КаталогРепозитория, ЛокальныйКаталог);
|
||||||
ФайлПутьКЛокальнымСценариям = Новый Файл(ПутьКЛокальнымСценариям);
|
ФайлПутьКЛокальнымСценариям = Новый Файл(ПутьКЛокальнымСценариям);
|
||||||
|
|
||||||
Если Не ФайлПутьКЛокальнымСценариям.Существует() ИЛИ ФайлПутьКЛокальнымСценариям.ЭтоФайл() Тогда
|
Если Не ФайлПутьКЛокальнымСценариям.Существует() ИЛИ ФайлПутьКЛокальнымСценариям.ЭтоФайл() Тогда
|
||||||
|
|
||||||
Лог.Ошибка("Сценарии из репозитория не загружены т.к. отсутствует каталог %1", ЛокальныйКаталог);
|
Лог.Ошибка("Сценарии из репозитория не загружены т.к. отсутствует каталог %1", ЛокальныйКаталог);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user