mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-02-13 13:48:32 +02:00
#ONECICD-9
Поправил определение измененных файлов при коммите
This commit is contained in:
parent
d8e229551a
commit
3a8ed4e9f7
@ -46,13 +46,13 @@
|
||||
|
||||
Лог.Информация("Используем глобальные настройки");
|
||||
УправлениеНастройками = Новый НастройкиРепозитория(Приложение.ПутьКРодительскомуКаталогу());
|
||||
|
||||
|
||||
Иначе
|
||||
|
||||
|
||||
Лог.Информация("Используем локальные настройки");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев(), УправлениеНастройками, КаталогРепозитория);
|
||||
|
||||
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
||||
@ -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>", ИмяФайла, ТипИзменения);
|
||||
|
||||
КонецЦикла;
|
||||
@ -189,7 +167,7 @@
|
||||
ИменаЗагружаемыхСценариев = Новый Массив;
|
||||
|
||||
Если НЕ УправлениеНастройками.ЭтоНовый() Тогда
|
||||
|
||||
|
||||
Лог.Информация("Читаем настройки");
|
||||
ИменаЗагружаемыхСценариев = УправлениеНастройками.Настройка("Precommt4onecСценарии\ГлобальныеСценарии");
|
||||
Если УправлениеНастройками.Настройка("Precommt4onecСценарии\ИспользоватьСценарииРепозитория") Тогда
|
||||
@ -197,15 +175,15 @@
|
||||
ЛокальныйКаталог = УправлениеНастройками.Настройка("Precommt4onecСценарии\КаталогЛокальныхСценариев");
|
||||
ПутьКЛокальнымСценариям = ОбъединитьПути(КаталогРепозитория, ЛокальныйКаталог);
|
||||
ФайлПутьКЛокальнымСценариям = Новый Файл(ПутьКЛокальнымСценариям);
|
||||
|
||||
Если Не ФайлПутьКЛокальнымСценариям.Существует() ИЛИ ФайлПутьКЛокальнымСценариям.ЭтоФайл() Тогда
|
||||
|
||||
Лог.Ошибка("Сценарии из репозитория не загружены т.к. отсутствует каталог %1", ЛокальныйКаталог);
|
||||
|
||||
Иначе
|
||||
|
||||
Если Не ФайлПутьКЛокальнымСценариям.Существует() ИЛИ ФайлПутьКЛокальнымСценариям.ЭтоФайл() Тогда
|
||||
|
||||
Лог.Ошибка("Сценарии из репозитория не загружены т.к. отсутствует каталог %1", ЛокальныйКаталог);
|
||||
|
||||
Иначе
|
||||
|
||||
ФайлыЛокальныхСценариев = НайтиФайлы(ФайлПутьКЛокальнымСценариям.ПолноеИмя, "*.os");
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
@ -226,11 +204,11 @@
|
||||
Процедура ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыСценариев, Знач ИменаЗагружаемыхСценариев = Неопределено)
|
||||
|
||||
Если ИменаЗагружаемыхСценариев = Неопределено Тогда
|
||||
|
||||
|
||||
ИменаЗагружаемыхСценариев = Новый Массив;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Для Каждого ФайлСценария Из ФайлыСценариев Цикл
|
||||
|
||||
Если СтрСравнить(ФайлСценария.ИмяБезРасширения, "ШаблонСценария") = 0 Тогда
|
||||
@ -238,7 +216,7 @@
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если ИменаЗагружаемыхСценариев.Найти(ФайлСценария.Имя) = Неопределено Тогда
|
||||
|
||||
Продолжить;
|
||||
|
Loading…
x
Reference in New Issue
Block a user