diff --git a/GitConverter/src/Catalogs/ВерсииХранилища/ManagerModule.bsl b/GitConverter/src/Catalogs/ВерсииХранилища/ManagerModule.bsl index 6756153..bef5578 100644 --- a/GitConverter/src/Catalogs/ВерсииХранилища/ManagerModule.bsl +++ b/GitConverter/src/Catalogs/ВерсииХранилища/ManagerModule.bsl @@ -68,16 +68,32 @@ ПоляВерсии.Вставить("Добавлены:", "Добавлены"); ПоляВерсии.Вставить("Изменены:", "Изменены"); ПоляВерсии.Вставить("Удалены:", "Удалены"); + ПоляВерсии.Вставить("Version:", "Версия"); + ПоляВерсии.Вставить("Creation date:", "ДатаСоздания"); + ПоляВерсии.Вставить("Creation time:", "ВремяСоздания"); + ПоляВерсии.Вставить("User:", "Пользователь"); + ПоляВерсии.Вставить("Comment:", "Комментарий"); + ПоляВерсии.Вставить("Added:", "Добавлены"); + ПоляВерсии.Вставить("Changed:", "Изменены"); + ПоляВерсии.Вставить("Deleted:", "Удалены"); КолонкаПоиска = Отчет.Область("C1"); ОбластьСтроки = Неопределено; ОбластьСтроки = Отчет.НайтиТекст("Версия:", ОбластьСтроки, КолонкаПоиска, Ложь, Истина, Истина, Истина); + Если ОбластьСтроки = Неопределено Тогда + ОбластьСтроки = Отчет.НайтиТекст("Version:", ОбластьСтроки, КолонкаПоиска, Ложь, Истина, Истина, Истина); + КонецЕсли; Пока ОбластьСтроки <> Неопределено Цикл ВерсияХранилища = Новый Структура("Версия, ДатаСоздания, ВремяСоздания, Пользователь, Комментарий, Добавлены, Изменены, Удалены", "", "", "", "", "", Новый Массив, Новый Массив, Новый Массив); СтрокаНачалаВерсии = ОбластьСтроки.Верх; - ОбластьСтроки = Отчет.НайтиТекст("Версия:", ОбластьСтроки, КолонкаПоиска, Ложь, Истина, Истина, Истина); + ОбластьСтрокиНаРусском = Отчет.НайтиТекст("Версия:", ОбластьСтроки, КолонкаПоиска, Ложь, Истина, Истина, Истина); + Если ОбластьСтрокиНаРусском = Неопределено Тогда + ОбластьСтроки = Отчет.НайтиТекст("Version:", ОбластьСтроки, КолонкаПоиска, Ложь, Истина, Истина, Истина); + Иначе + ОбластьСтроки = ОбластьСтрокиНаРусском; + КонецЕсли; Если ОбластьСтроки = Неопределено Тогда // Это последняя версия в файле, получаем конец документа diff --git a/GitConverter/src/Catalogs/ХранилищаКонфигураций/Forms/ФормаЭлемента/Form.form b/GitConverter/src/Catalogs/ХранилищаКонфигураций/Forms/ФормаЭлемента/Form.form index 0b834d0..2626e71 100644 --- a/GitConverter/src/Catalogs/ХранилищаКонфигураций/Forms/ФормаЭлемента/Form.form +++ b/GitConverter/src/Catalogs/ХранилищаКонфигураций/Forms/ФормаЭлемента/Form.form @@ -1144,6 +1144,10 @@ ВыгружатьИзменения 145 + + <key>ru</key> + <value>Выгружать изменения (ускорить конвертацию)</value> + true true @@ -1155,6 +1159,7 @@ Right + Button ВыгружатьИзмененияРасширеннаяПодсказка 147 diff --git a/GitConverter/src/Catalogs/ХранилищаКонфигураций/ХранилищаКонфигураций.mdo b/GitConverter/src/Catalogs/ХранилищаКонфигураций/ХранилищаКонфигураций.mdo index 4fae494..11e9752 100644 --- a/GitConverter/src/Catalogs/ХранилищаКонфигураций/ХранилищаКонфигураций.mdo +++ b/GitConverter/src/Catalogs/ХранилищаКонфигураций/ХранилищаКонфигураций.mdo @@ -679,7 +679,7 @@ ru - Начиная с платформы 8.3.10 возможно использовать выгрузку изменений между версиями. + Начиная с платформы 8.3.10 возможно использовать выгрузку изменений между версиями - это позволяет существенно ускорить конвертацию. Необходимо использовать "Очереди выполнения" с данной опцией. diff --git a/GitConverter/src/CommonModules/КонвертацияХранилища/Module.bsl b/GitConverter/src/CommonModules/КонвертацияХранилища/Module.bsl index 03fc135..2d5d5ea 100644 --- a/GitConverter/src/CommonModules/КонвертацияХранилища/Module.bsl +++ b/GitConverter/src/CommonModules/КонвертацияХранилища/Module.bsl @@ -42,7 +42,7 @@ + "params_" + Параметры.Ключ + ".txt"); Параметры.Вставить("ИмяФайлаЛогов", ИмяФайлаЛогаКонвертацииХранилища(Параметры.КаталогВременныхФайлов)); Параметры.Вставить("ИмяФайлаРезультатов", Параметры.КаталогВременныхФайлов - + "result.log"); + + "result.txt"); Параметры.Вставить("КаталогИБ", Параметры.КаталогВременныхФайлов + "report_db"); Параметры.КаталогИБ = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(Параметры.КаталогИБ); @@ -459,8 +459,9 @@ Параметры = Новый Структура; Параметры.Вставить("Код", СтрокаВерсии.Код); Параметры.Вставить("КопияХранилища", Копия); - Параметры.Вставить("КаталогВыгрузкиВерсий", ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(СтрокаВерсии.КаталогВыгрузкиВерсий)); - + Параметры.Вставить("КаталогВыгрузкиВерсий", + ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(СтрокаВерсии.КаталогВыгрузкиВерсий)); + ПолучитьВерсиюВБазу(Параметры, СтрокаВерсии.Хранилище, СтрокаВерсии.ВерсияХранилища); Прервать; @@ -665,7 +666,7 @@ Объект = Неопределено; Справочники.ВерсииХранилища.УстановитьСостояние(ВерсияХранилища, Перечисления.СостоянияВерсии.НачалоКоммита); - + ФайлКомандыGit = Новый Файл(ИмяФайлаКомандыGit); ФайлКомментария = Новый Файл(ИмяФайлКомментария); Если НЕ ФайлКомандыGit.Существует() ИЛИ ФайлКомандыGit.Размер() = 0 @@ -732,9 +733,17 @@ СоздатьКаталог(ПутьКИсходнымФайлам); СкопироватьФайлыРекурсивно(ВыборкаДетальныеЗаписи.КаталогФайловКонфигурации, ПутьКИсходнымФайлам); КонецЕсли; + + Параметры = Новый Структура; + Параметры.Вставить("ИмяФайлаЛогов", ИмяФайлаЛога); + ДобавитьЗаписьВЛог(Параметры, НСтр("ru='Начало коммита в Git'")); + КодВозврата = Неопределено; ЗапуститьПриложение(?(ЭтоWindowsСервер, "", "bash ") - + ИмяФайлаКомандыGit, РеквизитыХранилища.ЛокальныйКаталогGit, Истина); + + ИмяФайлаКомандыGit, РеквизитыХранилища.ЛокальныйКаталогGit, Истина, КодВозврата); + + ДобавитьЗаписьВЛог(Параметры, НСтр("ru='Окончание коммита в Git'"), "Код возврата: " + + ?(КодВозврата = Неопределено, "Неопределено", КодВозврата)); SHAКоммита = ""; ИмяФайлаSHA = ПолучитьИмяВременногоФайла("txt"); @@ -1021,7 +1030,7 @@ + "params_" + Параметры.Ключ + ".txt"); Параметры.Вставить("ИмяФайлаЛогов", ИмяФайлаЛогаОбработкиВерсии(Параметры.КаталогВременныхФайлов)); Параметры.Вставить("ИмяФайлаРезультатов", Параметры.КаталогВременныхФайлов - + "result.log"); + + "result.txt"); Возврат Параметры; @@ -1170,7 +1179,8 @@ ЭлементБлокировки.УстановитьЗначение("Ссылка", ВыборкаДетальныеЗаписи.Ссылка); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; Блокировка.Заблокировать(); - + + // Ответственное чтение версии, держим версию заблокированой до окончания копирования Состояние = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВыборкаДетальныеЗаписи.Ссылка, "Состояние"); Если Состояние = Перечисления.СостоянияВерсии.ВерсияВыгружена @@ -1607,36 +1617,42 @@ ФайлКоманды.ДобавитьСтроку(ТекстКоманды); Если ЭтоWindowsСервер Тогда - ТекстКомандыУстановкиКаталога = "cd /D ""%ЛокальныйКаталогGit%"" >> %LOGFILE%"; + ВыводЛога = " >> %LOGFILE% 2>&1"; Иначе - ТекстКомандыУстановкиКаталога = "cd ""%ЛокальныйКаталогGit%"" >> %LOGFILE%"; + ВыводЛога = " >> $LOGFILE 2>&1"; + КонецЕсли; + + Если ЭтоWindowsСервер Тогда + ТекстКомандыУстановкиКаталога = "cd /D ""%ЛокальныйКаталогGit%""" + ВыводЛога; + Иначе + ТекстКомандыУстановкиКаталога = "cd ""%ЛокальныйКаталогGit%""" + ВыводЛога; КонецЕсли; ТекстКомандыУстановкиКаталога = СтрЗаменить(ТекстКомандыУстановкиКаталога, "%ЛокальныйКаталогGit%", РеквизитыХранилища.ЛокальныйКаталогGit); ФайлКоманды.ДобавитьСтроку(ТекстКомандыУстановкиКаталога); // Инициализация репозитория - ТекстКоманды = "git init >> %LOGFILE%"; + ТекстКоманды = "git init" + ВыводЛога; ФайлКоманды.ДобавитьСтроку(ТекстКоманды); // Делаем пути к файлам русскоязычными - ТекстКоманды = "git config --local core.quotepath false >> %LOGFILE%"; + ТекстКоманды = "git config --local core.quotepath false" + ВыводЛога; ФайлКоманды.ДобавитьСтроку(ТекстКоманды); // кодировка по умолчанию при просмотре - ТекстКоманды = "git config --local gui.encoding utf-8 >> %LOGFILE%"; + ТекстКоманды = "git config --local gui.encoding utf-8" + ВыводЛога; ФайлКоманды.ДобавитьСтроку(ТекстКоманды); // Кодировка сообщений в коммитах - ТекстКоманды = "git config --local i18n.commitEncoding utf-8 >> %LOGFILE%"; + ТекстКоманды = "git config --local i18n.commitEncoding utf-8" + ВыводЛога; ФайлКоманды.ДобавитьСтроку(ТекстКоманды); // Устанавливаем количество переименованных файлов = 0, т.к. все переименования мы делаем вручную - ТекстКоманды = "git config --local diff.renameLimit 1 >> %LOGFILE%"; + ТекстКоманды = "git config --local diff.renameLimit 1" + ВыводЛога; ФайлКоманды.ДобавитьСтроку(ТекстКоманды); // Отключаем автоопределение переименования, переименования устанавливаем вручную - ТекстКоманды = "git config --local diff.renames false >> %LOGFILE%"; + ТекстКоманды = "git config --local diff.renames false" + ВыводЛога; ФайлКоманды.ДобавитьСтроку(ТекстКоманды); // Инициализация репозитория на сервере @@ -1644,7 +1660,7 @@ ПозицияРазделителя = СтрНайти(АдресРепозиторияGit, "://"); Если ПозицияРазделителя > 0 Тогда - ТекстКоманды = "git remote add origin %АдресРепозиторияGit% >> %LOGFILE%"; + ТекстКоманды = "git remote add origin %АдресРепозиторияGit%" + ВыводЛога; АдресРепозиторияGit = Лев(АдресРепозиторияGit, ПозицияРазделителя + 2) + РеквизитыХранилища.ПользовательСервераGit + ":" + РеквизитыХранилища.ПарольСервераGit + "@" @@ -1655,12 +1671,6 @@ КонецЕсли; - Если НЕ ЭтоWindowsСервер Тогда - ТекстКоманды = ФайлКоманды.ПолучитьТекст(); - ТекстКоманды = СтрЗаменить(ТекстКоманды, "%LOGFILE%", "$LOGFILE"); - ФайлКоманды.УстановитьТекст(ТекстКоманды); - КонецЕсли; - Если ЭтоWindowsСервер Тогда ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.OEM); Иначе @@ -1733,9 +1743,15 @@ ФайлКоманды.ДобавитьСтроку(ТекстКоманды); Если ЭтоWindowsСервер Тогда - ТекстКомандыУстановкиКаталога = "cd /D ""%ЛокальныйКаталогGit%"" >> %LOGFILE%"; + ВыводЛога = " >> %LOGFILE% 2>&1"; Иначе - ТекстКомандыУстановкиКаталога = "cd ""%ЛокальныйКаталогGit%"" >> %LOGFILE%"; + ВыводЛога = " >> $LOGFILE 2>&1"; + КонецЕсли; + + Если ЭтоWindowsСервер Тогда + ТекстКомандыУстановкиКаталога = "cd /D ""%ЛокальныйКаталогGit%""" + ВыводЛога; + Иначе + ТекстКомандыУстановкиКаталога = "cd ""%ЛокальныйКаталогGit%""" + ВыводЛога; КонецЕсли; ТекстКомандыУстановкиКаталога = СтрЗаменить(ТекстКомандыУстановкиКаталога, "%ЛокальныйКаталогGit%", РеквизитыХранилища.ЛокальныйКаталогGit); @@ -1746,7 +1762,7 @@ ПозицияРазделителя = СтрНайти(АдресРепозиторияGit, "://"); Если ПозицияРазделителя > 0 Тогда - ТекстКоманды = "git remote add origin %АдресРепозиторияGit% >> %LOGFILE%"; + ТекстКоманды = "git remote add origin %АдресРепозиторияGit%" + ВыводЛога; АдресРепозиторияGit = Лев(АдресРепозиторияGit, ПозицияРазделителя + 2) + РеквизитыХранилища.ПользовательСервераGit + ":" + РеквизитыХранилища.ПарольСервераGit + "@" @@ -1757,12 +1773,6 @@ КонецЕсли; - Если НЕ ЭтоWindowsСервер Тогда - ТекстКоманды = ФайлКоманды.ПолучитьТекст(); - ТекстКоманды = СтрЗаменить(ТекстКоманды, "%LOGFILE%", "$LOGFILE"); - ФайлКоманды.УстановитьТекст(ТекстКоманды); - КонецЕсли; - Если ЭтоWindowsСервер Тогда ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.OEM); Иначе @@ -2084,8 +2094,10 @@ КодВозврата = Неопределено; ЗапуститьПриложение(СтрокаКоманды, Параметры.КаталогИсполняемогоФайла, Истина, КодВозврата); + КодРезультата = ПрочитатьФайлРезультата(Параметры.ИмяФайлаРезультатов); + ДобавитьЗаписьВЛог(Параметры, НСтр("ru='Окончание создания базы.'"), "Код возврата: " - + ?(КодВозврата = Неопределено, "Неопределено", КодВозврата)); + + ?(КодВозврата = Неопределено, "Неопределено", КодВозврата) + ", Код результата: " + КодРезультата); КонецЕсли; @@ -2162,11 +2174,13 @@ КодВозврата = Неопределено; ЗапуститьПриложение(СтрокаКоманды, Параметры.КаталогИсполняемогоФайла, Истина, КодВозврата); + КодРезультата = ПрочитатьФайлРезультата(Параметры.ИмяФайлаРезультатов); + ДобавитьЗаписьВЛог(Параметры, НСтр("ru='Окончание формирования отчета по хранилищу.'"), "Код возврата: " - + ?(КодВозврата = Неопределено, "Неопределено", КодВозврата)); + + ?(КодВозврата = Неопределено, "Неопределено", КодВозврата) + ", Код результата: " + КодРезультата); // Если выполнение операции содержит ошибки - далее не продолжаем - Если КодВозврата <> 0 Тогда + Если КодВозврата <> 0 ИЛИ КодРезультата <> 0 Тогда ВызватьИсключение СтрШаблон(НСтр("ru = 'При формирования отчета по хранилищу конфигураций возникли ошибки. Подробнее см. файл лога: |%1'", Параметры.ИмяФайлаЛогов)); КонецЕсли; @@ -2243,11 +2257,13 @@ КодВозврата = Неопределено; ЗапуститьПриложение(СтрокаКоманды, Параметры.КаталогИсполняемогоФайла, Истина, КодВозврата); + КодРезультата = ПрочитатьФайлРезультата(Параметры.ИмяФайлаРезультатов); + ДобавитьЗаписьВЛог(Параметры, НСтр("ru='Окончание обновления базы из хранилища.'"), "Код возврата: " - + ?(КодВозврата = Неопределено, "Неопределено", КодВозврата)); + + ?(КодВозврата = Неопределено, "Неопределено", КодВозврата) + ", Код результата: " + КодРезультата); // Если выполнение операции содержит ошибки - далее не продолжаем - Если КодВозврата <> 0 Тогда + Если КодВозврата <> 0 ИЛИ КодРезультата <> 0 Тогда ВызватьИсключение СтрШаблон(НСтр("ru = 'При обновлении ИБ из хранилища конфигураций возникли ошибки. Подробнее см. файл лога: |%1'", Параметры.ИмяФайлаЛогов)); КонецЕсли; @@ -2276,10 +2292,13 @@ УказыватьПустогоПользователя = ЗначениеЗаполнено(Параметры.ИмяПользователяИБ); - Если Параметры.ВыгружатьИзменения Тогда + Если Параметры.Свойство("ВыгружатьИзменения") И Параметры.ВыгружатьИзменения Тогда ДополнительныеПараметры = "-update -force -getChanges ""%ФайлИзменений%"" -configDumpInfoForChanges ""%ФайлСостоянияПредыдущейВерсии%"""; ДополнительныеПараметры = СтрЗаменить(ДополнительныеПараметры, "%ФайлИзменений%", Параметры.ФайлИзменений); ДополнительныеПараметры = СтрЗаменить(ДополнительныеПараметры, "%ФайлСостоянияПредыдущейВерсии%", Параметры.ФайлСостоянияПредыдущейВерсии); + ИначеЕсли Параметры.Свойство("ВыгружатьПоСписку") И Параметры.ВыгружатьПоСписку Тогда + ДополнительныеПараметры = "-listFile ""%ФайлСпискаВыгрузки%"""; + ДополнительныеПараметры = СтрЗаменить(ДополнительныеПараметры, "%ФайлСпискаВыгрузки%", Параметры.ФайлСпискаВыгрузки); Иначе ДополнительныеПараметры = ""; КонецЕсли; @@ -2314,12 +2333,14 @@ КодВозврата = Неопределено; ЗапуститьПриложение(СтрокаКоманды, Параметры.КаталогИсполняемогоФайла, Истина, КодВозврата); + + КодРезультата = ПрочитатьФайлРезультата(Параметры.ИмяФайлаРезультатов); ДобавитьЗаписьВЛог(Параметры, НСтр("ru='Окончание выгрузки конфигурации в файлы.'"), "Код возврата: " - + ?(КодВозврата = Неопределено, "Неопределено", КодВозврата)); + + ?(КодВозврата = Неопределено, "Неопределено", КодВозврата) + ", Код результата: " + КодРезультата); // Если выполнение операции содержит ошибки - далее не продолжаем - Если КодВозврата <> 0 Тогда + Если КодВозврата <> 0 ИЛИ КодРезультата <> 0 Тогда ВызватьИсключение СтрШаблон(НСтр("ru = 'При выгрузке конфигурации в файлы возникли ошибки. Подробнее см. файл лога: |%1'", Параметры.ИмяФайлаЛогов)); КонецЕсли; @@ -2373,7 +2394,7 @@ + "params_" + Параметры.Ключ + ".txt"); Параметры.Вставить("ИмяФайлаЛогов", ИмяФайлаЛогаКонвертацииХранилища(Параметры.КаталогВременныхФайлов)); Параметры.Вставить("ИмяФайлаРезультатов", Параметры.КаталогВременныхФайлов - + "result.log"); + + "result.txt"); Параметры.Вставить("СоздатьФайловуюИнформационнуюБазу", Истина); Параметры.Вставить("ДобавлятьВСписок", Истина); @@ -2397,7 +2418,7 @@ Параметры.Вставить("ОбновитьИнформационнуюБазуИзХранилища", Истина); Параметры.Вставить("ВерсияХранилища", Параметры.Код); ОбновитьИнформационнуюБазуИзХранилища(Параметры); - + ДлительныеОперации.СообщитьПрогресс(100, "Версия получена из хранилища"); Справочники.ВерсииХранилища.УстановитьСостояние(ВерсияХранилища, Перечисления.СостоянияВерсии.ВерсияПолучена); @@ -2416,8 +2437,7 @@ // СтруктураФайла - Структура - параметры файла // КвалифицированныеОбъекты - Структура - список квалифицированных объектов для поиска в файле // ПодчиненныеОбъекты - Массив - список подчиненных объектов -Процедура ПрочитатьСвойстваОбъектаМетаданных(СтруктураФайла, - КвалифицированныеОбъекты, ПодчиненныеОбъекты) +Процедура ПрочитатьСвойстваОбъектаМетаданных(СтруктураФайла, КвалифицированныеОбъекты, ПодчиненныеОбъекты) Попытка @@ -2542,16 +2562,22 @@ ФайлКоманды.ДобавитьСтроку(ТекстКоманды); Если ЭтоWindowsСервер Тогда - ТекстКомандыУстановкиКаталога = "cd /D ""%ЛокальныйКаталогGit%"" >> %LOGFILE%"; + ВыводЛога = " >> %LOGFILE% 2>&1"; Иначе - ТекстКомандыУстановкиКаталога = "cd ""%ЛокальныйКаталогGit%"" >> %LOGFILE%"; + ВыводЛога = " >> $LOGFILE 2>&1"; + КонецЕсли; + + Если ЭтоWindowsСервер Тогда + ТекстКомандыУстановкиКаталога = "cd /D ""%ЛокальныйКаталогGit%""" + ВыводЛога; + Иначе + ТекстКомандыУстановкиКаталога = "cd ""%ЛокальныйКаталогGit%""" + ВыводЛога; КонецЕсли; ТекстКомандыУстановкиКаталога = СтрЗаменить(ТекстКомандыУстановкиКаталога, "%ЛокальныйКаталогGit%", РеквизитыХранилища.ЛокальныйКаталогGit); ФайлКоманды.ДобавитьСтроку(ТекстКомандыУстановкиКаталога); - ТекстКоманды = "git pull >> %LOGFILE%"; + ТекстКоманды = "git pull" + ВыводЛога; ФайлКоманды.ДобавитьСтроку(ТекстКоманды); КаталогФайловКонфигурации = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыВерсии.КаталогФайловКонфигурации); @@ -2646,9 +2672,9 @@ // Создаем все кататалоги Если ЭтоWindowsСервер Тогда - ТекстКоманды = "mkdir ""%Приемник%"" >> %LOGFILE%"; + ТекстКоманды = "mkdir ""%Приемник%""" + ВыводЛога; Иначе - ТекстКоманды = "mkdir -p ""%Приемник%"" >> %LOGFILE%"; + ТекстКоманды = "mkdir -p ""%Приемник%""" + ВыводЛога; КонецЕсли; ДиректорияПриемника = ПрефиксКаталогаИсходников + СтрокаТЧ.ПолноеИмя; МассивПутей = СтрРазделить(ДиректорияПриемника, ПолучитьРазделительПути()); @@ -2657,7 +2683,7 @@ ТекстКоманды = СтрЗаменить(ТекстКоманды, "%Приемник%", ДиректорияПриемника); ТекстыКомандПереименования.Добавить(ТекстКоманды); - ТекстКоманды = "git mv -f %Источник% %Приемник% >> %LOGFILE%"; + ТекстКоманды = "git mv -f %Источник% %Приемник%" + ВыводЛога; ТекстКоманды = СтрЗаменить(ТекстКоманды, "%Источник%", ПрефиксКаталогаИсходников + НайденнаяСтрока.ПолноеИмя); @@ -2676,7 +2702,7 @@ // Все что не найдено - помечаем на удаление Для Каждого СтрокаТЧ Из ТаблицаИндексовПредыдущейВерсии Цикл - ТекстКоманды = "git rm -f %Источник% >> %LOGFILE%"; + ТекстКоманды = "git rm -f %Источник%" + ВыводЛога; ТекстКоманды = СтрЗаменить(ТекстКоманды, "%Источник%", ПрефиксКаталогаИсходников + СтрокаТЧ.ПолноеИмя); ФайлКоманды.ДобавитьСтроку(ТекстКоманды); @@ -2684,7 +2710,7 @@ КонецЦикла; Если ЕстьУдаления Тогда - ТекстКоманды = "git commit -F ""%ИмяФайлКомментария%"" --allow-empty-message --cleanup=verbatim >> %LOGFILE%"; + ТекстКоманды = "git commit -F ""%ИмяФайлКомментария%"" --allow-empty-message --cleanup=verbatim" + ВыводЛога; ТекстКоманды = СтрЗаменить(ТекстКоманды, "%ИмяФайлКомментария%", ИмяФайлКомментария); ФайлКоманды.ДобавитьСтроку(ТекстКоманды); КонецЕсли; @@ -2696,7 +2722,7 @@ КонецЦикла; Если ЕстьПереименования Тогда - ТекстКоманды = "git commit -F ""%ИмяФайлКомментария%"" --allow-empty-message --cleanup=verbatim >> %LOGFILE%"; + ТекстКоманды = "git commit -F ""%ИмяФайлКомментария%"" --allow-empty-message --cleanup=verbatim" + ВыводЛога; ТекстКоманды = СтрЗаменить(ТекстКоманды, "%ИмяФайлКомментария%", ИмяФайлКомментария); ФайлКоманды.ДобавитьСтроку(ТекстКоманды); КонецЕсли; @@ -2714,12 +2740,12 @@ // Если выгрузка только изменений - тогда обновляем существующие файлы Если НЕ РеквизитыВерсии.ВыгрузкаИзменений Тогда - ТекстКоманды = "rmdir /S /Q ""%Приемник%"" >> %LOGFILE%"; + ТекстКоманды = "rmdir /S /Q ""%Приемник%""" + ВыводЛога; ТекстКоманды = СтрЗаменить(ТекстКоманды, "%Приемник%", ПутьКИсходнымФайлам); ФайлКоманды.ДобавитьСтроку(ТекстКоманды); КонецЕсли; - ТекстКоманды = "mkdir ""%Приемник%"" >> %LOGFILE%"; + ТекстКоманды = "mkdir ""%Приемник%""" + ВыводЛога; ТекстКоманды = СтрЗаменить(ТекстКоманды, "%Приемник%", ПутьКИсходнымФайлам); ФайлКоманды.ДобавитьСтроку(ТекстКоманды); @@ -2733,7 +2759,7 @@ Если Прав(Приемник, 1) = ПолучитьРазделительПути() Тогда Приемник = Лев(Приемник, СтрДлина(Приемник) - 1); КонецЕсли; - ТекстКоманды = "robocopy ""%Источник%"" ""%Приемник%"" /E /MOVE /NFL /NDL /NJH /NJS /NC /NS /NP >> %LOGFILE%"; + ТекстКоманды = "robocopy ""%Источник%"" ""%Приемник%"" /E /MOVE /NFL /NDL /NJH /NJS /NC /NS /NP" + ВыводЛога; ТекстКоманды = СтрЗаменить(ТекстКоманды, "%Источник%", Источник); ТекстКоманды = СтрЗаменить(ТекстКоманды, "%Приемник%", Приемник); ФайлКоманды.ДобавитьСтроку(ТекстКоманды); @@ -2750,12 +2776,12 @@ КонецЕсли; Иначе Если НЕ РеквизитыВерсии.ВыгрузкаИзменений Тогда - ТекстКоманды = "rm -rf ""%Приемник%"" >> %LOGFILE%"; + ТекстКоманды = "rm -rf ""%Приемник%""" + ВыводЛога; ТекстКоманды = СтрЗаменить(ТекстКоманды, "%Приемник%", ПутьКИсходнымФайлам); ФайлКоманды.ДобавитьСтроку(ТекстКоманды); КонецЕсли; - ТекстКоманды = "mv -f ""%Источник%*"" ""%Приемник%"" >> %LOGFILE%"; + ТекстКоманды = "mv -f ""%Источник%*"" ""%Приемник%""" + ВыводЛога; ТекстКоманды = СтрЗаменить(ТекстКоманды, "%Источник%", КаталогФайловКонфигурации); ТекстКоманды = СтрЗаменить(ТекстКоманды, "%Приемник%", ПутьКИсходнымФайлам); ФайлКоманды.ДобавитьСтроку(ТекстКоманды); @@ -2764,10 +2790,10 @@ КонецЕсли; // Все файлы новой версии добавляем в индекс - ТекстКоманды = "git add --all ./ >> %LOGFILE%"; + ТекстКоманды = "git add --all ./" + ВыводЛога; ФайлКоманды.ДобавитьСтроку(ТекстКоманды); - ТекстКоманды = "git commit -F ""%ИмяФайлКомментария%"" --allow-empty-message --cleanup=verbatim >> %LOGFILE%"; + ТекстКоманды = "git commit -F ""%ИмяФайлКомментария%"" --allow-empty-message --cleanup=verbatim" + ВыводЛога; ДетализацияКомментария = " Версия хранилища №%НомерВерсии% от %Дата% %Автор%"; ДетализацияКомментария = СтрЗаменить(ДетализацияКомментария, "%НомерВерсии%", Формат(РеквизитыВерсии.Код, "ЧДЦ=; ЧГ=0")); @@ -2786,21 +2812,15 @@ ФайлКоманды.ДобавитьСтроку(ТекстКоманды); // Выполнение регламентных действий с репозиторием, если необходимо - ТекстКоманды = "git gc --auto >> %LOGFILE%"; + ТекстКоманды = "git gc --auto" + ВыводЛога; ФайлКоманды.ДобавитьСтроку(ТекстКоманды); Если ЗначениеЗаполнено(РеквизитыХранилища.АдресРепозиторияGit) Тогда - ТекстКоманды = "git push -u origin %ИмяВетки% >> %LOGFILE%"; + ТекстКоманды = "git push --progress -u origin %ИмяВетки%" + ВыводЛога; ТекстКоманды = СтрЗаменить(ТекстКоманды, "%ИмяВетки%", РеквизитыХранилища.ИмяВетки); ФайлКоманды.ДобавитьСтроку(ТекстКоманды); КонецЕсли; - Если НЕ ЭтоWindowsСервер Тогда - ТекстКоманды = ФайлКоманды.ПолучитьТекст(); - ТекстКоманды = СтрЗаменить(ТекстКоманды, "%LOGFILE%", "$LOGFILE"); - ФайлКоманды.УстановитьТекст(ТекстКоманды); - КонецЕсли; - Если ЭтоWindowsСервер Тогда ФайлКоманды.Записать(ИмяФайлаКомандыGit, КодировкаТекста.OEM); Иначе @@ -2860,6 +2880,37 @@ КонецПроцедуры +// Зачитывает результат из файла результатов пакетной операции Конфигуратора +// +// Параметры: +// ИмяФайлаРезультатов - Строка - Имя файла результатов пакетной операции +// Возвращаемое значение: +// Число - Возвращается 0, если результат успешный (0 ошибок), 99999 если файл результата пустой, +// возвращается 100000 если ошибка чтения файла или в файле содержатся не числовые символы, N произвольное +// число, означающее наличие ошибок +Функция ПрочитатьФайлРезультата(ИмяФайлаРезультатов) + + Результат = 1; + ФайлРезультата = Новый ТекстовыйДокумент(); + Попытка + ФайлРезультата.Прочитать(ИмяФайлаРезультатов); + ТекстРезультата = ФайлРезультата.ПолучитьТекст(); + Если ПустаяСтрока(ТекстРезультата) Тогда + Результат = 99999; + ИначеЕсли СокрЛП(ТекстРезультата) = "0" Тогда + Результат = 0; + Иначе + Результат = Число(ТекстРезультата); + КонецЕсли; + + Исключение + Результат = 100000; + КонецПопытки; + + Возврат Результат; + +КонецФункции + // Копирует файлы рекурсивно // // Параметры: diff --git a/GitConverter/src/Configuration/ClientApplicationInterface.cai b/GitConverter/src/Configuration/ClientApplicationInterface.cai new file mode 100644 index 0000000..e00bc55 --- /dev/null +++ b/GitConverter/src/Configuration/ClientApplicationInterface.cai @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/GitConverter/src/Configuration/CommandInterface.cmi b/GitConverter/src/Configuration/CommandInterface.cmi new file mode 100644 index 0000000..0cf6de8 --- /dev/null +++ b/GitConverter/src/Configuration/CommandInterface.cmi @@ -0,0 +1,2 @@ + + diff --git a/GitConverter/src/Constants/ПутьКВерсиямПлатформыНаСервере/ValueManagerModule.bsl b/GitConverter/src/Constants/ПутьКВерсиямПлатформыНаСервере/ValueManagerModule.bsl new file mode 100644 index 0000000..8f50da2 --- /dev/null +++ b/GitConverter/src/Constants/ПутьКВерсиямПлатформыНаСервере/ValueManagerModule.bsl @@ -0,0 +1,20 @@ +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ОбработчикиСобытий + +Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) + + Если НЕ ПустаяСтрока(ЭтотОбъект.Значение) И СтрНайти(ЭтотОбъект.Значение, "%ВерсияПлатформы%") = 0 Тогда + ОбщегоНазначенияКлиентСервер.СообщитьПользователю( + НСтр("ru = 'В пути к версиям необходимо использовать <%ВерсияПлатформы%> для подстановки версии платформы.'"), + , + "ПутьКВерсиямПлатформыНаСервере", + "НаборКонстант", + Отказ); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецЕсли diff --git a/GitConverter/src/Constants/ПутьКВерсиямПлатформыНаСервере/ПутьКВерсиямПлатформыНаСервере.mdo b/GitConverter/src/Constants/ПутьКВерсиямПлатформыНаСервере/ПутьКВерсиямПлатформыНаСервере.mdo index 0fbe205..c9cbd7b 100644 --- a/GitConverter/src/Constants/ПутьКВерсиямПлатформыНаСервере/ПутьКВерсиямПлатформыНаСервере.mdo +++ b/GitConverter/src/Constants/ПутьКВерсиямПлатформыНаСервере/ПутьКВерсиямПлатформыНаСервере.mdo @@ -27,5 +27,6 @@ + ShowError Managed diff --git a/GitConverter/src/FunctionalOptions/ИспользоватьОчередиВыполнения/ИспользоватьОчередиВыполнения.mdo b/GitConverter/src/FunctionalOptions/ИспользоватьОчередиВыполнения/ИспользоватьОчередиВыполнения.mdo index 1cede24..0cd2965 100644 --- a/GitConverter/src/FunctionalOptions/ИспользоватьОчередиВыполнения/ИспользоватьОчередиВыполнения.mdo +++ b/GitConverter/src/FunctionalOptions/ИспользоватьОчередиВыполнения/ИспользоватьОчередиВыполнения.mdo @@ -11,7 +11,6 @@ Catalog.ОчередиВыполнения Enum.ОперацииОчереди Catalog.ХранилищаКонфигураций.Attribute.ОбрабатыватьВсеОчереди - Catalog.ХранилищаКонфигураций.Attribute.ВыгружатьИзменения Catalog.ВерсииХранилища.Attribute.ВыгрузкаИзменений Catalog.ХранилищаКонфигураций.Attribute.ЗапретитьИспользованиеОбщихОчередей