mirror of
https://github.com/1C-Company/GitConverter.git
synced 2025-03-29 21:47:04 +02:00
Merge pull request #25 from 1C-Company/features/log-enhancement
Улучшение логирования и мелкие доработки
This commit is contained in:
commit
13fbbd2c10
GitConverter/src
Catalogs
ВерсииХранилища
ХранилищаКонфигураций
CommonModules/КонвертацияХранилища
Configuration
Constants/ПутьКВерсиямПлатформыНаСервере
FunctionalOptions/ИспользоватьОчередиВыполнения
@ -68,16 +68,32 @@
|
||||
ПоляВерсии.Вставить("Добавлены:", "Добавлены");
|
||||
ПоляВерсии.Вставить("Изменены:", "Изменены");
|
||||
ПоляВерсии.Вставить("Удалены:", "Удалены");
|
||||
ПоляВерсии.Вставить("Version:", "Версия");
|
||||
ПоляВерсии.Вставить("Creation date:", "ДатаСоздания");
|
||||
ПоляВерсии.Вставить("Creation time:", "ВремяСоздания");
|
||||
ПоляВерсии.Вставить("User:", "Пользователь");
|
||||
ПоляВерсии.Вставить("Comment:", "Комментарий");
|
||||
ПоляВерсии.Вставить("Added:", "Добавлены");
|
||||
ПоляВерсии.Вставить("Changed:", "Изменены");
|
||||
ПоляВерсии.Вставить("Deleted:", "Удалены");
|
||||
|
||||
КолонкаПоиска = Отчет.Область("C1");
|
||||
ОбластьСтроки = Неопределено;
|
||||
ОбластьСтроки = Отчет.НайтиТекст("Версия:", ОбластьСтроки, КолонкаПоиска, Ложь, Истина, Истина, Истина);
|
||||
Если ОбластьСтроки = Неопределено Тогда
|
||||
ОбластьСтроки = Отчет.НайтиТекст("Version:", ОбластьСтроки, КолонкаПоиска, Ложь, Истина, Истина, Истина);
|
||||
КонецЕсли;
|
||||
Пока ОбластьСтроки <> Неопределено Цикл
|
||||
|
||||
ВерсияХранилища = Новый Структура("Версия, ДатаСоздания, ВремяСоздания, Пользователь, Комментарий, Добавлены, Изменены, Удалены", "", "", "", "", "", Новый Массив, Новый Массив, Новый Массив);
|
||||
|
||||
СтрокаНачалаВерсии = ОбластьСтроки.Верх;
|
||||
ОбластьСтроки = Отчет.НайтиТекст("Версия:", ОбластьСтроки, КолонкаПоиска, Ложь, Истина, Истина, Истина);
|
||||
ОбластьСтрокиНаРусском = Отчет.НайтиТекст("Версия:", ОбластьСтроки, КолонкаПоиска, Ложь, Истина, Истина, Истина);
|
||||
Если ОбластьСтрокиНаРусском = Неопределено Тогда
|
||||
ОбластьСтроки = Отчет.НайтиТекст("Version:", ОбластьСтроки, КолонкаПоиска, Ложь, Истина, Истина, Истина);
|
||||
Иначе
|
||||
ОбластьСтроки = ОбластьСтрокиНаРусском;
|
||||
КонецЕсли;
|
||||
Если ОбластьСтроки = Неопределено Тогда
|
||||
|
||||
// Это последняя версия в файле, получаем конец документа
|
||||
|
@ -1144,6 +1144,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ВыгружатьИзменения</name>
|
||||
<id>145</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Выгружать изменения (ускорить конвертацию)</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@ -1155,6 +1159,7 @@
|
||||
</paths>
|
||||
</dataPath>
|
||||
<titleLocation>Right</titleLocation>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ВыгружатьИзмененияРасширеннаяПодсказка</name>
|
||||
<id>147</id>
|
||||
|
@ -679,7 +679,7 @@
|
||||
</type>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Начиная с платформы 8.3.10 возможно использовать выгрузку изменений между версиями.</value>
|
||||
<value>Начиная с платформы 8.3.10 возможно использовать выгрузку изменений между версиями - это позволяет существенно ускорить конвертацию. Необходимо использовать "Очереди выполнения" с данной опцией.</value>
|
||||
</toolTip>
|
||||
<mask></mask>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
|
@ -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;
|
||||
КонецПопытки;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Копирует файлы рекурсивно
|
||||
//
|
||||
// Параметры:
|
||||
|
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<cai:ClientApplicationInterface xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cai="http://g5.1c.ru/v8/dt/cai">
|
||||
<top xsi:type="cai:CaiGroup" id="d896eafc-f07f-45df-a3c2-c715e81eedab">
|
||||
<panels id="233d933c-98e2-4d28-be97-b45c38f4edf1" name="SectionPanel" displayType="PictureAndText"/>
|
||||
</top>
|
||||
<top xsi:type="cai:CaiGroup" id="efdd6f40-21a7-4f2f-aa45-74bfc6b64f0d">
|
||||
<panels id="c86f71dc-2b2b-44aa-a1bf-795531d27187" name="FunctionsPanel"/>
|
||||
<panels id="77734118-744f-45f8-8911-cd195ae0faea" name="OpenedPanel"/>
|
||||
</top>
|
||||
<left xsi:type="cai:CaiPanel" id="da04fef1-b3b8-4c7c-9407-97e5caedf7a6" name="ToolsPanel"/>
|
||||
<unset id="15da5405-216d-40a1-a60c-c61d5a72155c" name="FavoritePanel"/>
|
||||
<unset id="90c981eb-1453-4c1a-986b-26ff07237587" name="HistoryPanel"/>
|
||||
</cai:ClientApplicationInterface>
|
2
GitConverter/src/Configuration/CommandInterface.cmi
Normal file
2
GitConverter/src/Configuration/CommandInterface.cmi
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
|
@ -0,0 +1,20 @@
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
|
||||
|
||||
Если НЕ ПустаяСтрока(ЭтотОбъект.Значение) И СтрНайти(ЭтотОбъект.Значение, "%ВерсияПлатформы%") = 0 Тогда
|
||||
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
|
||||
НСтр("ru = 'В пути к версиям необходимо использовать <%ВерсияПлатформы%> для подстановки версии платформы.'"),
|
||||
,
|
||||
"ПутьКВерсиямПлатформыНаСервере",
|
||||
"НаборКонстант",
|
||||
Отказ);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
@ -27,5 +27,6 @@
|
||||
<mask></mask>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
</mdclass:Constant>
|
||||
|
1
GitConverter/src/FunctionalOptions/ИспользоватьОчередиВыполнения/ИспользоватьОчередиВыполнения.mdo
1
GitConverter/src/FunctionalOptions/ИспользоватьОчередиВыполнения/ИспользоватьОчередиВыполнения.mdo
@ -11,7 +11,6 @@
|
||||
<content>Catalog.ОчередиВыполнения</content>
|
||||
<content>Enum.ОперацииОчереди</content>
|
||||
<content>Catalog.ХранилищаКонфигураций.Attribute.ОбрабатыватьВсеОчереди</content>
|
||||
<content>Catalog.ХранилищаКонфигураций.Attribute.ВыгружатьИзменения</content>
|
||||
<content>Catalog.ВерсииХранилища.Attribute.ВыгрузкаИзменений</content>
|
||||
<content>Catalog.ХранилищаКонфигураций.Attribute.ЗапретитьИспользованиеОбщихОчередей</content>
|
||||
</mdclass:FunctionalOption>
|
||||
|
Loading…
x
Reference in New Issue
Block a user