//ирПортативный Перем ирПортативный Экспорт; //ирПортативный Перем ирОбщий Экспорт; //ирПортативный Перем ирСервер Экспорт; //ирПортативный Перем ирКэш Экспорт; //ирПортативный Перем ирКлиент Экспорт; Перем мПлатформа Экспорт; Функция РазделительАтрибутовКоммитов() Экспорт Возврат "##"; КонецФункции Функция ПараметрыВыводаДанныхКоммита(Знач ДляPowerShell = Ложь, Знач ДобавитьСтатистику = Ложь) Экспорт Результат = СтрЗаменить(" --pretty=format:'|%H|%ad|%an|%B|%P|%d|'", "|", РазделительАтрибутовКоммитов()) + ФорматДаты(ДляPowerShell); Если ДобавитьСтатистику Тогда Результат = Результат + " --shortstat"; КонецЕсли; Если Не ДляPowerShell Тогда Результат = СтрЗаменить(Результат, "'", """"); КонецЕсли; Возврат Результат; КонецФункции Функция ФорматДаты(Знач ДляPowerShell = Ложь) Экспорт Результат = " --date=format:'%d.%m.%Y %H:%M:%S'"; Если Не ДляPowerShell Тогда Результат = СтрЗаменить(Результат, "'", """"); КонецЕсли; Возврат Результат; КонецФункции Функция НачалоКомандыГита() Экспорт ПроверитьПапкуГита(Истина); Возврат "git -C """ + ПапкаГита + """ "; КонецФункции Функция ПроверитьПапкуГита(Знач ВыбрасыватьИсключение = Ложь) Экспорт Файл = Новый Файл(ПапкаГита); Результат = Истина; Если ирОбщий.СтрНачинаетсяСЛкс(ПапкаГита, "\\") Тогда Если ВыбрасыватьИсключение Тогда ВызватьИсключение "UNC путь к репозиторию не поддерживается"; Иначе Результат = Ложь; КонецЕсли; КонецЕсли; Если Не Файл.Существует() Тогда Если ВыбрасыватьИсключение Тогда ВызватьИсключение "Папка репозитория не существует"; Иначе Результат = Ложь; КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции Функция ДатаПоследнегоКоммита(Знач ПолноеИмяФайла = "") Экспорт Если Не ЗначениеЗаполнено(ПапкаГита) Тогда Возврат Неопределено; КонецЕсли; СтрокаКоманды = НачалоКомандыГита() + "log -1 " + ФорматДаты() + " --format=""%ad"""; Если ЗначениеЗаполнено(ПолноеИмяФайла) Тогда ИмяФайлаГита = СтрЗаменить(ПолноеИмяФайла, ПапкаГита + ирОбщий.РазделительПутиКФайлуЛкс(), ""); ИмяФайлаГита = СтрЗаменить(ИмяФайлаГита, "\", "/"); СтрокаКоманды = СтрокаКоманды + " -- """ + ИмяФайлаГита + """"; КонецЕсли; Текст = ирОбщий.ВыполнитьКомандуОСЛкс(СтрокаКоманды,,,,, КодировкаТекста.UTF8); Результат = Дата(Текст); Возврат Результат; КонецФункции //ирПортативный лФайл = Новый Файл(ИспользуемоеИмяФайла); //ирПортативный ПолноеИмяФайлаБазовогоМодуля = Лев(лФайл.Путь, СтрДлина(лФайл.Путь) - СтрДлина("Модули\")) + "ирПортативный.epf"; //ирПортативный #Если Клиент Тогда //ирПортативный Контейнер = Новый Структура(); //ирПортативный Оповестить("ирПолучитьБазовуюФорму", Контейнер); //ирПортативный Если Не Контейнер.Свойство("ирПортативный", ирПортативный) Тогда //ирПортативный ирПортативный = ВнешниеОбработки.ПолучитьФорму(ПолноеИмяФайлаБазовогоМодуля); //ирПортативный ирПортативный.Открыть(); //ирПортативный КонецЕсли; //ирПортативный #Иначе //ирПортативный ирПортативный = ВнешниеОбработки.Создать(ПолноеИмяФайлаБазовогоМодуля, Ложь); // Это будет второй экземпляр объекта //ирПортативный #КонецЕсли //ирПортативный ирОбщий = ирПортативный.ОбщийМодульЛкс("ирОбщий"); //ирПортативный ирКэш = ирПортативный.ОбщийМодульЛкс("ирКэш"); //ирПортативный ирСервер = ирПортативный.ОбщийМодульЛкс("ирСервер"); //ирПортативный ирКлиент = ирПортативный.ОбщийМодульЛкс("ирКлиент"); мПлатформа = ирКэш.Получить(); #Если Клиент Тогда ПапкаГита = ирКлиент.ГитРепозиторий(); #КонецЕсли