Skip to content

Commit 24ec4b3

Browse files
committed
Для работы с Git теперь используется gitrunner
1 parent 3c67e51 commit 24ec4b3

File tree

1 file changed

+31
-45
lines changed

1 file changed

+31
-45
lines changed

v8files-extractor.os

Lines changed: 31 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2016 xDrivenDevelopment
1+
// Copyright 2016 xDrivenDevelopment
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -18,13 +18,15 @@
1818
#Использовать asserts
1919
#Использовать v8runner
2020
#Использовать strings
21+
#Использовать gitrunner
2122

2223
Перем Лог;
2324
Перем КодВозврата;
2425
Перем мВозможныеКоманды;
2526
Перем ЭтоWindows;
2627
Перем ИспользоватьКонфигуратор;
2728
Перем КонтекстКонфигуратора;
29+
Перем ГитРепозиторий;
2830

2931
Функция Версия() Экспорт
3032

@@ -196,6 +198,9 @@
196198
ИспользоватьКонфигуратор = Ложь;
197199
КонтекстКонфигуратора = Неопределено;
198200

201+
ГитРепозиторий = Новый ГитРепозиторий();
202+
ГитРепозиторий.УстановитьРабочийКаталог(ТекущийКаталог());
203+
199204
Попытка
200205

201206
Лог_cmdline = Логирование.ПолучитьЛог("oscript.lib.cmdline");
@@ -418,8 +423,7 @@
418423

419424
Процедура УстановитьВКаталог(Знач Каталог) Экспорт
420425

421-
КаталогГит = Новый Файл(ОбъединитьПути(Каталог, ".git"));
422-
Если Не КаталогГит.Существует() Тогда
426+
Если Не ГитРепозиторий.ЭтоРепозиторий() Тогда
423427
ВызватьИсключение "Каталог не является репозиторием GIT";
424428
КонецЕсли;
425429

@@ -436,8 +440,8 @@
436440
ДополнитьФайлХукаДаннымиПодключения(КаталогХуков);
437441
КонецЕсли;
438442

439-
ЗапуститьПриложение("git config --local core.quotepath false", Каталог, Истина);
440-
ЗапуститьПриложение("git config --local core.longpaths true", Каталог, Истина);
443+
ГитРепозиторий.УстановитьНастройку("core.quotePath", "false", РежимУстановкиНастроекGit.Локально);
444+
ГитРепозиторий.УстановитьНастройку("core.longpaths", "true", РежимУстановкиНастроекGit.Локально);
441445

442446
Лог.Информация("Установка завершена");
443447

@@ -583,11 +587,11 @@
583587

584588
Процедура УдалитьФайлИзИндексаГит(Знач ПолныйПуть)
585589
Лог.Отладка("Удаляю файл из индекса");
586-
Вывод = ПолучитьВыводПроцесса("git rm --cached """ + ПолныйПуть + """", КодВозврата);
587-
Лог.Отладка("Вывод git rm --cached: " + Вывод);
588-
Если КодВозврата <> 0 Тогда
589-
ВызватьИсключение "Не удалось удалить файл из журнала изменений git";
590-
КонецЕсли;
590+
ПараметрыКоманды = Новый Массив;
591+
ПараметрыКоманды.Добавить("rm");
592+
ПараметрыКоманды.Добавить("--cached");
593+
ПараметрыКоманды.Добавить(ОбернутьПутьВКавычки(ПолныйПуть));
594+
ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды);
591595
КонецПроцедуры
592596

593597
Процедура ПроверитьНастройкиРепозитарияГит() Экспорт
@@ -598,14 +602,9 @@
598602
Процедура ПроверитьНастройкуРепозитарияГит(Настройка, ПравильноеЗначение)
599603
Перем КодВозврата;
600604

601-
КомандаПроверкаСостояния = СтрШаблон("git config %1", Настройка);
602-
Лог.Отладка("Выполняю команду %1", КомандаПроверкаСостояния);
603-
604-
Вывод = ПолучитьВыводПроцесса(КомандаПроверкаСостояния, КодВозврата);
605-
Вывод = СокрЛП(Вывод);
606-
Лог.Отладка(" Код возврата %1", КодВозврата);
607-
Лог.Отладка(" Вывод команды <%1>", Вывод);
608-
Если КодВозврата = 0 И Вывод = ПравильноеЗначение Тогда
605+
Лог.Отладка("Выполняю проверку настройки %1", Настройка);
606+
ЗначениеНастройки = ГитРепозиторий.ПолучитьНастройку(Настройка);
607+
Если ЗначениеНастройки = ПравильноеЗначение Тогда
609608
Возврат;
610609
КонецЕсли;
611610

@@ -620,32 +619,20 @@
620619
Функция ПолучитьЖурналИзмененийГит()
621620

622621
Перем КодВозврата;
623-
624-
Вывод = ВыполнитьКомандуГит("git diff-index --name-status --cached HEAD", КодВозврата, Ложь);
625-
Если КодВозврата <> 0 Тогда
626-
Вывод = ВыполнитьКомандуГит("git status --porcelain", КодВозврата, Ложь);
627-
628-
Если КодВозврата <> 0 Тогда
629-
ВызватьИсключение "Не удалось собрать журнал изменений git";
630-
КонецЕсли;
631-
632-
КонецЕсли;
622+
Попытка
623+
ПараметрыКоманды = СтрРазделить("diff-index --name-status --cached HEAD", " ");
624+
ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды);
625+
Вывод = ГитРепозиторий.ПолучитьВыводКоманды();
626+
Исключение
627+
ПараметрыКоманды = СтрРазделить("status --porcelain", " ");
628+
ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды);
629+
Вывод = ГитРепозиторий.ПолучитьВыводКоманды();
630+
КонецПопытки;
633631

634632
Возврат Вывод;
635633

636634
КонецФункции
637635

638-
Функция ВыполнитьКомандуГит(КомандаГит, КодВозврата = Неопределено, ПроверятьНулевойКодВозврата = Истина)
639-
640-
Лог.Отладка("Запускаю "+КомандаГит);
641-
Вывод = ПолучитьВыводПроцесса(КомандаГит, КодВозврата);
642-
Лог.Отладка(" Вывод команды гит: " + Вывод);
643-
Если ПроверятьНулевойКодВозврата Тогда
644-
Ожидаем.Что(КодВозврата, "Код возврата `"+КомандаГит+"` должен быть 0, а это не так").Равно(0);
645-
КонецЕсли;
646-
Возврат Вывод;
647-
КонецФункции
648-
649636
Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)
650637

651638
// // Это для dev версии 1.0.11
@@ -706,12 +693,11 @@
706693
Для Каждого Каталог Из СписокНовыхКаталогов Цикл
707694

708695
Лог.Отладка("Запуск git add для каталога " + Каталог);
709-
Вывод = ПолучитьВыводПроцесса("git add --all " + ОбернутьПутьВКавычки(Каталог), КодВозврата);
710-
Лог.Отладка("Вывод git add: " + Вывод);
711-
Если КодВозврата <> 0 Тогда
712-
Лог.Ошибка(Вывод);
713-
ЗавершитьРаботу(КодВозврата);
714-
КонецЕсли;
696+
ПараметрыКоманды = Новый Массив;
697+
ПараметрыКоманды.Добавить("add");
698+
ПараметрыКоманды.Добавить("--all");
699+
ПараметрыКоманды.Добавить(ОбернутьПутьВКавычки(Каталог));
700+
ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды);
715701

716702
КонецЦикла
717703

0 commit comments

Comments
 (0)