|
1 |
| -// Copyright 2016 xDrivenDevelopment |
| 1 | +// Copyright 2016 xDrivenDevelopment |
2 | 2 | //
|
3 | 3 | // Licensed under the Apache License, Version 2.0 (the "License");
|
4 | 4 | // you may not use this file except in compliance with the License.
|
|
18 | 18 | #Использовать asserts
|
19 | 19 | #Использовать v8runner
|
20 | 20 | #Использовать strings
|
| 21 | +#Использовать gitrunner |
21 | 22 |
|
22 | 23 | Перем Лог;
|
23 | 24 | Перем КодВозврата;
|
24 | 25 | Перем мВозможныеКоманды;
|
25 | 26 | Перем ЭтоWindows;
|
26 | 27 | Перем ИспользоватьКонфигуратор;
|
27 | 28 | Перем КонтекстКонфигуратора;
|
| 29 | +Перем ГитРепозиторий; |
28 | 30 |
|
29 | 31 | Функция Версия() Экспорт
|
30 | 32 |
|
|
196 | 198 | ИспользоватьКонфигуратор = Ложь;
|
197 | 199 | КонтекстКонфигуратора = Неопределено;
|
198 | 200 |
|
| 201 | + ГитРепозиторий = Новый ГитРепозиторий(); |
| 202 | + ГитРепозиторий.УстановитьРабочийКаталог(ТекущийКаталог()); |
| 203 | + |
199 | 204 | Попытка
|
200 | 205 |
|
201 | 206 | Лог_cmdline = Логирование.ПолучитьЛог("oscript.lib.cmdline");
|
|
418 | 423 |
|
419 | 424 | Процедура УстановитьВКаталог(Знач Каталог) Экспорт
|
420 | 425 |
|
421 |
| - КаталогГит = Новый Файл(ОбъединитьПути(Каталог, ".git")); |
422 |
| - Если Не КаталогГит.Существует() Тогда |
| 426 | + Если Не ГитРепозиторий.ЭтоРепозиторий() Тогда |
423 | 427 | ВызватьИсключение "Каталог не является репозиторием GIT";
|
424 | 428 | КонецЕсли;
|
425 | 429 |
|
|
436 | 440 | ДополнитьФайлХукаДаннымиПодключения(КаталогХуков);
|
437 | 441 | КонецЕсли;
|
438 | 442 |
|
439 |
| - ЗапуститьПриложение("git config --local core.quotepath false", Каталог, Истина); |
440 |
| - ЗапуститьПриложение("git config --local core.longpaths true", Каталог, Истина); |
| 443 | + ГитРепозиторий.УстановитьНастройку("core.quotePath", "false", РежимУстановкиНастроекGit.Локально); |
| 444 | + ГитРепозиторий.УстановитьНастройку("core.longpaths", "true", РежимУстановкиНастроекGit.Локально); |
441 | 445 |
|
442 | 446 | Лог.Информация("Установка завершена");
|
443 | 447 |
|
|
583 | 587 |
|
584 | 588 | Процедура УдалитьФайлИзИндексаГит(Знач ПолныйПуть)
|
585 | 589 | Лог.Отладка("Удаляю файл из индекса");
|
586 |
| - Вывод = ПолучитьВыводПроцесса("git rm --cached """ + ПолныйПуть + """", КодВозврата); |
587 |
| - Лог.Отладка("Вывод git rm --cached: " + Вывод); |
588 |
| - Если КодВозврата <> 0 Тогда |
589 |
| - ВызватьИсключение "Не удалось удалить файл из журнала изменений git"; |
590 |
| - КонецЕсли; |
| 590 | + ПараметрыКоманды = Новый Массив; |
| 591 | + ПараметрыКоманды.Добавить("rm"); |
| 592 | + ПараметрыКоманды.Добавить("--cached"); |
| 593 | + ПараметрыКоманды.Добавить(ОбернутьПутьВКавычки(ПолныйПуть)); |
| 594 | + ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды); |
591 | 595 | КонецПроцедуры
|
592 | 596 |
|
593 | 597 | Процедура ПроверитьНастройкиРепозитарияГит() Экспорт
|
|
598 | 602 | Процедура ПроверитьНастройкуРепозитарияГит(Настройка, ПравильноеЗначение)
|
599 | 603 | Перем КодВозврата;
|
600 | 604 |
|
601 |
| - КомандаПроверкаСостояния = СтрШаблон("git config %1", Настройка); |
602 |
| - Лог.Отладка("Выполняю команду %1", КомандаПроверкаСостояния); |
603 |
| - |
604 |
| - Вывод = ПолучитьВыводПроцесса(КомандаПроверкаСостояния, КодВозврата); |
605 |
| - Вывод = СокрЛП(Вывод); |
606 |
| - Лог.Отладка(" Код возврата %1", КодВозврата); |
607 |
| - Лог.Отладка(" Вывод команды <%1>", Вывод); |
608 |
| - Если КодВозврата = 0 И Вывод = ПравильноеЗначение Тогда |
| 605 | + Лог.Отладка("Выполняю проверку настройки %1", Настройка); |
| 606 | + ЗначениеНастройки = ГитРепозиторий.ПолучитьНастройку(Настройка); |
| 607 | + Если ЗначениеНастройки = ПравильноеЗначение Тогда |
609 | 608 | Возврат;
|
610 | 609 | КонецЕсли;
|
611 | 610 |
|
|
620 | 619 | Функция ПолучитьЖурналИзмененийГит()
|
621 | 620 |
|
622 | 621 | Перем КодВозврата;
|
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 | + КонецПопытки; |
633 | 631 |
|
634 | 632 | Возврат Вывод;
|
635 | 633 |
|
636 | 634 | КонецФункции
|
637 | 635 |
|
638 |
| -Функция ВыполнитьКомандуГит(КомандаГит, КодВозврата = Неопределено, ПроверятьНулевойКодВозврата = Истина) |
639 |
| - |
640 |
| - Лог.Отладка("Запускаю "+КомандаГит); |
641 |
| - Вывод = ПолучитьВыводПроцесса(КомандаГит, КодВозврата); |
642 |
| - Лог.Отладка(" Вывод команды гит: " + Вывод); |
643 |
| - Если ПроверятьНулевойКодВозврата Тогда |
644 |
| - Ожидаем.Что(КодВозврата, "Код возврата `"+КомандаГит+"` должен быть 0, а это не так").Равно(0); |
645 |
| - КонецЕсли; |
646 |
| - Возврат Вывод; |
647 |
| -КонецФункции |
648 |
| - |
649 | 636 | Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)
|
650 | 637 |
|
651 | 638 | // // Это для dev версии 1.0.11
|
|
706 | 693 | Для Каждого Каталог Из СписокНовыхКаталогов Цикл
|
707 | 694 |
|
708 | 695 | Лог.Отладка("Запуск git add для каталога " + Каталог);
|
709 |
| - Вывод = ПолучитьВыводПроцесса("git add --all " + ОбернутьПутьВКавычки(Каталог), КодВозврата); |
710 |
| - Лог.Отладка("Вывод git add: " + Вывод); |
711 |
| - Если КодВозврата <> 0 Тогда |
712 |
| - Лог.Ошибка(Вывод); |
713 |
| - ЗавершитьРаботу(КодВозврата); |
714 |
| - КонецЕсли; |
| 696 | + ПараметрыКоманды = Новый Массив; |
| 697 | + ПараметрыКоманды.Добавить("add"); |
| 698 | + ПараметрыКоманды.Добавить("--all"); |
| 699 | + ПараметрыКоманды.Добавить(ОбернутьПутьВКавычки(Каталог)); |
| 700 | + ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды); |
715 | 701 |
|
716 | 702 | КонецЦикла
|
717 | 703 |
|
|
0 commit comments