Зависает выгрузка для "толстых" конфигураций 1С
Зависает на первой же команде git diff-index --name-status --cached HEAD или git status --porcelain
Проблема в реализации метода ПолучитьВыводПроцесса
Так гарантированно работает
Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)
ЛогФайл = ВременныеФайлы.НовоеИмяФайла();
СтрокаЗапуска = "cmd /C """ + КоманднаяСтрока + " > """ + ЛогФайл + """ 2>&1""";
Лог.Отладка(СтрокаЗапуска);
ЗапуститьПриложение(СтрокаЗапуска,, Истина, КодВозврата);
Лог.Отладка("Код возврата: " + КодВозврата);
ЧтениеТекста = Новый ЧтениеТекста(ЛогФайл, "utf-8");
Вывод = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
Возврат Вывод;
КонецФункции
а так часто не работает, на локальной машине (Вин7) работает на нескольких машинх (Server 2012) просто зависает и все :(
Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)
// Это для dev версии 1.0.11
Процесс = СоздатьПроцесс(КоманднаяСтрока, , Истина,, КодировкаТекста.UTF8);
Процесс.Запустить();
Вывод = "";
Процесс.ОжидатьЗавершения();
Вывод = Вывод + Процесс.ПотокВывода.Прочитать();
Вывод = Вывод + Процесс.ПотокОшибок.Прочитать();
КодВозврата = Процесс.КодВозврата;
Возврат Вывод;
КонецФункции
@EvilBeaver Можешь что-нибудь подсказать?
Точнее зависает на репозитариях, в которых используется разбор конфигурации 1С на исходники
Брать отладчик, запускать проблемный код под ним и смотреть, что происходит
-----Исходное сообщение----- От: "Artur Ayukhanov" [email protected] Отправлено: 09.12.2015 16:10 Кому: "xDrivenDevelopment/precommit1c" [email protected] Копия: "Andrei Ovsiankin" [email protected] Тема: [precommit1c] Зависает выгрузка для "толстых" конфигураций 1С (#60)
Зависает на первой же команде git diff-index --name-status --cached HEAD Проблема в реализации метода ПолучитьВыводПроцесса Так гарантированно работает Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)
ЛогФайл = ВременныеФайлы.НовоеИмяФайла();
СтрокаЗапуска = "cmd /C """ + КоманднаяСтрока + " > """ + ЛогФайл + """ 2>&1""";
Лог.Отладка(СтрокаЗапуска);
ЗапуститьПриложение(СтрокаЗапуска,, Истина, КодВозврата);
Лог.Отладка("Код возврата: " + КодВозврата);
ЧтениеТекста = Новый ЧтениеТекста(ЛогФайл, "utf-8");
Вывод = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
Возврат Вывод;
КонецФункции а так часто не работает, на локальной машине (Вин7) работает на нескольких машинх (Server 2012) просто зависает и все :( Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)
// Это для dev версии 1.0.11
Процесс = СоздатьПроцесс(КоманднаяСтрока, , Истина,, КодировкаТекста.UTF8);
Процесс.Запустить();
Вывод = "";
Процесс.ОжидатьЗавершения();
Вывод = Вывод + Процесс.ПотокВывода.Прочитать();
Вывод = Вывод + Процесс.ПотокОшибок.Прочитать();
КодВозврата = Процесс.КодВозврата;
Возврат Вывод;
КонецФункции @EvilBeaver Можешь что-нибудь подсказать? — Reply to this email directly or view it on GitHub.