mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-06-10 23:47:56 +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" с параметрами "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;
|
||||
ПараметрыОбработки = Новый Структура("Лог, ФайлыДляПостОбработки, ИзмененныеКаталоги, КаталогРепозитория, УправлениеНастройками",
|
||||
Лог, Новый Массив, Новый Массив, КаталогРепозитория, УправлениеНастройками);
|
||||
Лог, Новый Массив, Новый Массив, КаталогРепозитория, УправлениеНастройками);
|
||||
Пока Ит < ЖурналИзменений.Количество() Цикл
|
||||
|
||||
АнализируемыйФайл = Новый Файл(ОбъединитьПути(КаталогРепозитория, ЖурналИзменений[Ит].ИмяФайла));
|
||||
@ -135,44 +135,22 @@
|
||||
ПараметрыКомандыGit = Новый Массив;
|
||||
ПараметрыКомандыGit.Добавить("diff-index --name-status --cached HEAD");
|
||||
РепозиторийGit.ВыполнитьКоманду(ПараметрыКомандыGit);
|
||||
ПараметрыКомандыGit = Новый Массив;
|
||||
ПараметрыКомандыGit.Добавить("status --porcelain");
|
||||
РепозиторийGit.ВыполнитьКоманду(ПараметрыКомандыGit);
|
||||
РезультатВывода = РепозиторийGit.ПолучитьВыводКоманды();
|
||||
СтрокиВывода = СтрРазделить(РезультатВывода, Символы.ПС);
|
||||
РезультатВывода = РепозиторийGit.ПолучитьВыводКоманды();
|
||||
СтрокиВывода = СтрРазделить(РезультатВывода, Символы.ПС);
|
||||
ЖурналИзменений = Новый Массив;
|
||||
|
||||
ЖурналИзменений = Новый Массив;
|
||||
Для Каждого СтрокаВывода Из СтрокиВывода Цикл
|
||||
|
||||
Лог.Отладка(" <%1>", СтрокаВывода);
|
||||
СтрокаВывода = СокрЛП(СтрокаВывода);
|
||||
ПозицияПробела = СтрНайти(СтрокаВывода, " ");
|
||||
СимволИзменения = Лев(СтрокаВывода, 1);
|
||||
Если СимволИзменения = "?" Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ТипИзменения = ВариантИзмененийФайловGit.ОпределитьВариантИзменения(СимволИзменения);
|
||||
|
||||
ИмяФайла = СокрЛП(СтрЗаменить(Сред(СтрокаВывода, ПозицияПробела + 1), """", ""));
|
||||
|
||||
Если ТипИзменения = ВариантИзмененийФайловGit.Переименован
|
||||
ИЛИ ТипИзменения = ВариантИзмененийФайловGit.Скопирован Тогда
|
||||
|
||||
// это два события - удален и добавлен
|
||||
ПозицияСтрелки = СтрНайти(ИмяФайла, "->");
|
||||
ИмяФайлаУдален = СокрЛП(Лев(ИмяФайла, ПозицияСтрелки - 1));
|
||||
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", ИмяФайлаУдален, ВариантИзмененийФайловGit.Удален));
|
||||
Лог.Отладка(" В журнале git %2 файл <%1>", ИмяФайлаУдален, ВариантИзмененийФайловGit.Удален);
|
||||
|
||||
ИмяФайла = СокрЛП(Сред(ИмяФайла, ПозицияСтрелки + 2));
|
||||
ТипИзменения = ВариантИзмененийФайловGit.Добавлен;
|
||||
|
||||
КонецЕсли;
|
||||
СтрокаВывода = СокрЛП(СтрокаВывода);
|
||||
ПозицияПробела = СтрНайти(СтрокаВывода, Символы.Таб);
|
||||
СимволИзменения = Лев(СтрокаВывода, 1);
|
||||
|
||||
ТипИзменения = ВариантИзмененийФайловGit.ОпределитьВариантИзменения(СимволИзменения);
|
||||
ИмяФайла = СокрЛП(СтрЗаменить(Сред(СтрокаВывода, ПозицияПробела + 1), """", ""));
|
||||
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", ИмяФайла, ТипИзменения));
|
||||
|
||||
Лог.Отладка(" В журнале git %2 файл <%1>", ИмяФайла, ТипИзменения);
|
||||
|
||||
КонецЦикла;
|
||||
@ -197,6 +175,7 @@
|
||||
ЛокальныйКаталог = УправлениеНастройками.Настройка("Precommt4onecСценарии\КаталогЛокальныхСценариев");
|
||||
ПутьКЛокальнымСценариям = ОбъединитьПути(КаталогРепозитория, ЛокальныйКаталог);
|
||||
ФайлПутьКЛокальнымСценариям = Новый Файл(ПутьКЛокальнымСценариям);
|
||||
|
||||
Если Не ФайлПутьКЛокальнымСценариям.Существует() ИЛИ ФайлПутьКЛокальнымСценариям.ЭтоФайл() Тогда
|
||||
|
||||
Лог.Ошибка("Сценарии из репозитория не загружены т.к. отсутствует каталог %1", ЛокальныйКаталог);
|
||||
|
Loading…
x
Reference in New Issue
Block a user