1
0
mirror of https://github.com/1C-Company/GitConverter.git synced 2025-03-19 21:08:00 +02:00

Небольшие улучшения:

- улучшение типизации
- установка слежения за веткой
- учет первого коммита  #88
This commit is contained in:
Dmitriy Marmyshev 2020-05-16 21:16:53 +03:00
parent 8e6c2ec0d9
commit e786a44273
5 changed files with 126 additions and 74 deletions

View File

@ -5,6 +5,7 @@
// Текст лицензии доступен по ссылке: // Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by-sa/4.0/legalcode // https://creativecommons.org/licenses/by-sa/4.0/legalcode
/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////
// @strict-types
#Область ОбработчикиСобытийФормы #Область ОбработчикиСобытийФормы
@ -23,7 +24,7 @@
Если МассивФоновыхЗаданий.Количество() > 0 Тогда Если МассивФоновыхЗаданий.Количество() > 0 Тогда
Задание = МассивФоновыхЗаданий[0]; Задание = МассивФоновыхЗаданий[0];
СостояниеЗадания = НСтр("ru='Выполняется обработка с %Дата%'"); СостояниеЗадания = НСтр("ru = 'Выполняется обработка с %Дата%'");
СостояниеЗадания = СтрЗаменить(СостояниеЗадания, "%Дата%", Задание.Начало); СостояниеЗадания = СтрЗаменить(СостояниеЗадания, "%Дата%", Задание.Начало);
Элементы.ГруппаСостояние.Видимость = Истина; Элементы.ГруппаСостояние.Видимость = Истина;

View File

@ -5,6 +5,7 @@
// Текст лицензии доступен по ссылке: // Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by-sa/4.0/legalcode // https://creativecommons.org/licenses/by-sa/4.0/legalcode
/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////
// @strict-types
#Область ОбработчикиСобытийФормы #Область ОбработчикиСобытийФормы
@ -326,7 +327,7 @@
СостояниеЗадания = ""; СостояниеЗадания = "";
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Отбор = Новый Структура(); Отбор = Новый Структура();
Отбор.Вставить("Ключ", Строка(Объект.Ссылка.УникальныйИдентификатор())); Отбор.Вставить("Ключ", Строка(Объект.Ссылка.УникальныйИдентификатор()));
@ -561,7 +562,7 @@
РасписаниеСтрокой = Строка(Расписание); РасписаниеСтрокой = Строка(Расписание);
Иначе Иначе
Расписание = Новый РасписаниеРегламентногоЗадания; Расписание = Новый РасписаниеРегламентногоЗадания;
РасписаниеСтрокой = РасписаниеСтрокой = Строка(Расписание); РасписаниеСтрокой = РасписаниеСтрокой + Строка(Расписание);
КонецЕсли; КонецЕсли;
УстановитьПривилегированныйРежим(Ложь); УстановитьПривилегированныйРежим(Ложь);
@ -602,7 +603,7 @@
РезультатОперации = Новый Структура; РезультатОперации = Новый Структура;
РезультатОперации.Вставить("КодОшибки", ""); РезультатОперации.Вставить("КодОшибки", "");
РезультатОперации.Вставить("ВерсииEDT", Неопределено); РезультатОперации.Вставить("ВерсииEDT", Новый Массив());
ИспользоватьНесколькоВерсийEDT = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВерсийEDT"); ИспользоватьНесколькоВерсийEDT = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВерсийEDT");
Если Не ЗначениеЗаполнено(Объект.ВерсияEDT) И ИспользоватьНесколькоВерсийEDT Тогда Если Не ЗначениеЗаполнено(Объект.ВерсияEDT) И ИспользоватьНесколькоВерсийEDT Тогда
@ -629,6 +630,10 @@
КонецФункции КонецФункции
// Параметры:
// КодВозварта - КодВозвратаДиалога
// ДополнительныеПараметры - Неопределено
&НаКлиенте &НаКлиенте
Процедура ВключитьИспользованиеВерсийEDT(КодВозварта, ДополнительныеПараметры) Экспорт Процедура ВключитьИспользованиеВерсийEDT(КодВозварта, ДополнительныеПараметры) Экспорт
@ -646,6 +651,10 @@
КонецПроцедуры КонецПроцедуры
// Параметры:
// Расписание1 - РасписаниеРегламентногоЗадания, Неопределено -
// ДополнительныеПараметры - Неопределено
&НаКлиенте &НаКлиенте
Процедура РасписаниеСтрокойНажатиеЗавершение(Расписание1, ДополнительныеПараметры) Экспорт Процедура РасписаниеСтрокойНажатиеЗавершение(Расписание1, ДополнительныеПараметры) Экспорт
@ -688,6 +697,10 @@
КонецПроцедуры КонецПроцедуры
// Параметры:
// ВыбранныеФайлы - Неопределено, Массив из Строка -
// ДополнительныеПараметры - Неопределено
&НаКлиенте &НаКлиенте
Процедура ЗагрузитьВерсииИзОтчетаПоХранилищуВыбор(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт Процедура ЗагрузитьВерсииИзОтчетаПоХранилищуВыбор(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
@ -704,6 +717,12 @@
КонецПроцедуры КонецПроцедуры
// Параметры:
// Результат - Булево
// АдресФайла - Строка
// ВыбранноеИмяФайла - Строка
// ДополнительныеПараметры - Неопределено
&НаКлиенте &НаКлиенте
Процедура ЗагрузитьВерсииИзОтчетаПоХранилищуПослеПомещения(Результат, АдресФайла, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт Процедура ЗагрузитьВерсииИзОтчетаПоХранилищуПослеПомещения(Результат, АдресФайла, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
@ -713,13 +732,12 @@
ЗагрузитьВерсииИзОтчетаПоХранилищуНаСервере(АдресФайла); ЗагрузитьВерсииИзОтчетаПоХранилищуНаСервере(АдресФайла);
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
Процедура ЗагрузитьВерсииИзОтчетаПоХранилищуНаСервере(АдресФайла) Процедура ЗагрузитьВерсииИзОтчетаПоХранилищуНаСервере(АдресФайла)
Файл = ПолучитьИзВременногоХранилища(АдресФайла); Файл = ПолучитьИзВременногоХранилища(АдресФайла); // ДвоичныеДанные -
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("mxl"); ИмяВременногоФайла = ПолучитьИмяВременногоФайла("mxl");
Файл.Записать(ИмяВременногоФайла); Файл.Записать(ИмяВременногоФайла);

View File

@ -127,8 +127,11 @@
// Находит фоновое задание и считывает из его сообщений информацию о ходе выполнения. // Находит фоновое задание и считывает из его сообщений информацию о ходе выполнения.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура - Информация о ходе выполнения фонового задания. // Структура - Информация о ходе выполнения фонового задания. Ключи структуры из процедуры См. СообщитьПрогресс :
// Ключи и значения структуры соответствуют именам и значениям параметров процедуры СообщитьПрогресс(). // * Процент - Число - Необязательный. Процент выполнения.
// * Текст - Строка - Необязательный. Информация о текущей операции.
// * ДополнительныеПараметры - Произвольный - Необязательный. Любая дополнительная информация,
// которую необходимо передать на клиент. Значение должно быть простым (сериализуемым в XML строку).
// //
Функция ПрочитатьПрогресс(Знач ИдентификаторЗадания) Экспорт Функция ПрочитатьПрогресс(Знач ИдентификаторЗадания) Экспорт
Перем Результат; Перем Результат;

View File

@ -5,6 +5,7 @@
// Текст лицензии доступен по ссылке: // Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by-sa/4.0/legalcode // https://creativecommons.org/licenses/by-sa/4.0/legalcode
/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////
// @strict-types
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Серверные процедуры и функции общего назначения для "Конвертации хранилища в Git" // Серверные процедуры и функции общего назначения для "Конвертации хранилища в Git"
@ -284,7 +285,7 @@
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать(); Блокировка.Заблокировать();
ОбъектВерсии = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); ОбъектВерсии = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); // СправочникОбъект.ВерсииХранилища -
Если ОбъектВерсии.Состояние = Перечисления.СостоянияВерсии.ВыгрузкаВерсии Если ОбъектВерсии.Состояние = Перечисления.СостоянияВерсии.ВыгрузкаВерсии
ИЛИ ОбъектВерсии.Состояние = Перечисления.СостоянияВерсии.ЗагрузкаМетаданных ИЛИ ОбъектВерсии.Состояние = Перечисления.СостоянияВерсии.ЗагрузкаМетаданных
@ -453,7 +454,7 @@
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать(); Блокировка.Заблокировать();
ОбъектВерсии = Выборка.ВерсияХранилища.ПолучитьОбъект(); ОбъектВерсии = Выборка.ВерсияХранилища.ПолучитьОбъект(); // СправочникОбъект.ВерсииХранилища -
Если ОбъектВерсии.Состояние <> Перечисления.СостоянияВерсии.ПустаяСсылка() Тогда Если ОбъектВерсии.Состояние <> Перечисления.СостоянияВерсии.ПустаяСсылка() Тогда
ОтменитьТранзакцию(); ОтменитьТранзакцию();
@ -522,13 +523,7 @@
// Хранилище - СправочникСсылка.ХранилищаКонфигураций - Ссылка на хранилище, по которому выполняются коммиты // Хранилище - СправочникСсылка.ХранилищаКонфигураций - Ссылка на хранилище, по которому выполняются коммиты
Процедура ВыполнитьКоммиты(Знач Хранилище) Экспорт Процедура ВыполнитьКоммиты(Знач Хранилище) Экспорт
ИменаРеквизитов = Новый Структура("ВерсияВGit, Код, ЛокальныйКаталогGit, КаталогВыгрузкиВерсий, АдресРепозиторияGit, РеквизитыХранилища = ПараметрыХранилищаДляКоммита(Хранилище);
| ИмяВетки, МинимальноеКоличествоМетаданных, КоличествоКоммитов, ОтключитьЛогирование,
| РазрешитьПомещатьАнонимноЕслиНеНайденПользователь, ИмяПроектаEDT, ВыгружатьИзменения,
| КонвертироватьВФорматEDT, ДобавлятьМеткиСВерсиейКонфигурации, АдресРепозиторияGit, ИмяВетки",
"ВерсияВGit",
"ВерсияВGit.Код");
РеквизитыХранилища = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Хранилище, ИменаРеквизитов);
Если НЕ РеквизитыХранилища.КонвертироватьВФорматEDT Тогда Если НЕ РеквизитыХранилища.КонвертироватьВФорматEDT Тогда
Возврат; Возврат;
@ -544,11 +539,6 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
// Путь к проекту в репозитории /path_to_git/Project/
РеквизитыХранилища.Вставить("ПутьКПроекту", ПутьКПроекту(РеквизитыХранилища));
// Путь к файлам конфигурации проекта в репозитории /path_to_git/Project/src/
РеквизитыХранилища.Вставить("ПутьКФайламПроекта", ПутьКФайламПроекта(РеквизитыХранилища));
Файл = Новый Файл(РеквизитыХранилища.ПутьКПроекту); Файл = Новый Файл(РеквизитыХранилища.ПутьКПроекту);
Если Не Файл.Существует() Тогда Если Не Файл.Существует() Тогда
СоздатьКаталог(РеквизитыХранилища.ПутьКПроекту); СоздатьКаталог(РеквизитыХранилища.ПутьКПроекту);
@ -629,13 +619,12 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ПараметрыВерсии = Новый Структура("Ссылка, Код, КаталогВременныхФайлов, Комментарий, ДатаСоздания, ПараметрыВерсии = ПараметрыВерсииДляКоммита();
| Пользователь, Email, ПользовательХранилища, КоличествоМетаданных, ВыгрузкаИзменений");
ПараметрыВерсии.Вставить("ИмяПроектаEDT", РеквизитыХранилища.ИмяПроектаEDT); ПараметрыВерсии.Вставить("ИмяПроектаEDT", РеквизитыХранилища.ИмяПроектаEDT);
ЗаполнитьЗначенияСвойств(ПараметрыВерсии, ВыборкаДетальныеЗаписи); ЗаполнитьЗначенияСвойств(ПараметрыВерсии, ВыборкаДетальныеЗаписи);
ВерсияХранилища = ВыборкаДетальныеЗаписи.Ссылка; ВерсияХранилища = ВыборкаДетальныеЗаписи.Ссылка; // СправочникСсылка.ВерсииХранилища -
Объект = ВерсияХранилища.ПолучитьОбъект(); Объект = ВерсияХранилища.ПолучитьОбъект();
// Каталог исходных файлов проекта /path_to_dump/1/p/Project/ // Каталог исходных файлов проекта /path_to_dump/1/p/Project/
@ -837,10 +826,11 @@
КонецПроцедуры КонецПроцедуры
// Процедура - Сформирует файлы коммита версии // Процедура - Сформирует файлы коммита версии
// //
// Параметры: // Параметры:
// ВерсияХранилища - СправочникСсылка.ВерсияХранилища - ссылка на версию // ВерсияХранилища - СправочникСсылка.ВерсииХранилища - ссылка на версию
// //
Процедура СформироватьФайлыКоммитаВерсии(ВерсияХранилища) Экспорт Процедура СформироватьФайлыКоммитаВерсии(ВерсияХранилища) Экспорт
@ -1753,7 +1743,7 @@
ОбъектВерсии.Записать(); ОбъектВерсии.Записать();
Параметры.Состояние = Перечисления.СостоянияВерсии.ПустаяСсылка(); Параметры.Состояние = Перечисления.СостоянияВерсии.ПустаяСсылка();
ДобавитьЗаписьВЛог(Параметры, НСтр("ru='Загрузка метаданных'"), ДобавитьЗаписьВЛог(Параметры, НСтр("ru = 'Загрузка метаданных'"),
"Произошла проблема при выгрузке или загрузке метаданных. Минимальное количество метаданных: " "Произошла проблема при выгрузке или загрузке метаданных. Минимальное количество метаданных: "
+ Формат(Параметры.МинимальноеКоличествоМетаданных, "ЧГ=0;") + Формат(Параметры.МинимальноеКоличествоМетаданных, "ЧГ=0;")
+ " текущее количество: " + Формат(КоличествоМетаданных, "ЧГ=0;") + " текущее количество: " + Формат(КоличествоМетаданных, "ЧГ=0;")
@ -1967,7 +1957,7 @@
ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер(); ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер();
ИменаРеквизитов = Новый Структура("ВерсияВGit, Код, ЛокальныйКаталогGit, КаталогВыгрузкиВерсий, АдресРепозиторияGit, ИменаРеквизитов = Новый Структура("ВерсияВGit, Код, ЛокальныйКаталогGit, КаталогВыгрузкиВерсий, АдресРепозиторияGit,
| ИмяПроектаEDT, ПользовательСервераGit, ПарольСервераGit", | ИмяПроектаEDT, ПользовательСервераGit, ПарольСервераGit, ИмяВетки",
"ВерсияВGit", "ВерсияВGit.Код"); "ВерсияВGit", "ВерсияВGit.Код");
РеквизитыХранилища = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Хранилище, ИменаРеквизитов); РеквизитыХранилища = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Хранилище, ИменаРеквизитов);
@ -2068,6 +2058,9 @@
ФайлКоманды.ДобавитьСтроку(ТекстКоманды); ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
КонецЕсли; КонецЕсли;
ТекстКоманды = "git branch --set-upstream-to=origin/%ИмяВетки% %ИмяВетки%" + ВыводЛога;
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%ИмяВетки%", РеквизитыХранилища.ИмяВетки);
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
Если ЭтоWindowsСервер Тогда Если ЭтоWindowsСервер Тогда
ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.OEM); ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.OEM);
@ -2132,7 +2125,7 @@
ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер(); ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер();
ИменаРеквизитов = Новый Структура("ВерсияВGit, Код, ЛокальныйКаталогGit, КаталогВыгрузкиВерсий, АдресРепозиторияGit, ПользовательСервераGit, ПарольСервераGit", "ВерсияВGit", "ВерсияВGit.Код"); ИменаРеквизитов = Новый Структура("ВерсияВGit, Код, ЛокальныйКаталогGit, КаталогВыгрузкиВерсий, АдресРепозиторияGit, ПользовательСервераGit, ПарольСервераGit, ИмяВетки", "ВерсияВGit", "ВерсияВGit.Код");
РеквизитыХранилища = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Хранилище, ИменаРеквизитов); РеквизитыХранилища = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Хранилище, ИменаРеквизитов);
ФайлЛога = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.КаталогВыгрузкиВерсий) ФайлЛога = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.КаталогВыгрузкиВерсий)
@ -2188,6 +2181,9 @@
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%АдресРепозиторияGit%", АдресРепозиторияGit); ТекстКоманды = СтрЗаменить(ТекстКоманды, "%АдресРепозиторияGit%", АдресРепозиторияGit);
ФайлКоманды.ДобавитьСтроку(ТекстКоманды); ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
КонецЕсли; КонецЕсли;
ТекстКоманды = "git branch --set-upstream-to=origin/%ИмяВетки% %ИмяВетки%" + ВыводЛога;
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%ИмяВетки%", РеквизитыХранилища.ИмяВетки);
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
Если ЭтоWindowsСервер Тогда Если ЭтоWindowsСервер Тогда
ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.OEM); ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.OEM);
@ -2395,9 +2391,9 @@
// ИмяСобытия - Строка - имя события // ИмяСобытия - Строка - имя события
// Уровень - Строка, УровеньЖурналаРегистрации - уровень записи журнала регистрации // Уровень - Строка, УровеньЖурналаРегистрации - уровень записи журнала регистрации
// ОбъектМетаданных - ОбъектМетаданных, Неопределено - объект метаданных // ОбъектМетаданных - ОбъектМетаданных, Неопределено - объект метаданных
// Данные - Описание // Данные - Строка, Число, Дата, Булево, Неопределено -
// Комментарий - Строка - комментарий // Комментарий - Строка - комментарий
// РежимТранзакции - Описание // РежимТранзакции - РежимТранзакцииЗаписиЖурналаРегистрации, Неопределено -
Процедура ДобавитьЗаписьВЖурналРегистрации(Знач ИмяСобытия, Процедура ДобавитьЗаписьВЖурналРегистрации(Знач ИмяСобытия,
Знач Уровень = Неопределено, Знач ОбъектМетаданных = Неопределено, Знач Уровень = Неопределено, Знач ОбъектМетаданных = Неопределено,
Знач Данные = Неопределено, Знач Комментарий = "", Знач Данные = Неопределено, Знач Комментарий = "",
@ -3339,7 +3335,7 @@
// Индексы для поиска неизмененных файлов // Индексы для поиска неизмененных файлов
ТаблицаИндексовПредыдущейВерсии.Индексы.Добавить("Уровень, UUID"); ТаблицаИндексовПредыдущейВерсии.Индексы.Добавить("Уровень, UUID");
ТекстыКомандПереименования = Новый Массив; ТекстыКомандПереименования = Новый Массив; // Массив из Строка -
Для Каждого СтрокаТЧ Из ТаблицаИндексов Цикл Для Каждого СтрокаТЧ Из ТаблицаИндексов Цикл
Отбор = Новый Структура(); Отбор = Новый Структура();
@ -3503,13 +3499,10 @@
КонецПроцедуры КонецПроцедуры
// Выполняются действия перед коммитом версии, перед запуском командного файла, выполняющего копирование
// файлов версии в каталог репозитория и последующим коммитом изменений. Этот метод можно дополнять в // Возвращаемое значение:
// подключаемых расширениях для реализации дополнительной логики после выполнения коммита // Структура:
// в локальный репозиторий. // * ИмяПроектаEDT - Строка
//
// Параметры:
// ПараметрыВерсии - Структура - Параметры версии:
// * Ссылка - СправочникСсылка.ВерсииХранилища - Ссылка на помещаемую версию в репозиторий // * Ссылка - СправочникСсылка.ВерсииХранилища - Ссылка на помещаемую версию в репозиторий
// * Код - Строка - Код помещаемой версии // * Код - Строка - Код помещаемой версии
// * КаталогВременныхФайлов - Строка - Каталог временных файлов версии // * КаталогВременныхФайлов - Строка - Каталог временных файлов версии
@ -3523,19 +3516,71 @@
// * ПутьКПроектуВерсии - Строка - Путь ко временному каталогу проекта в формате EDT // * ПутьКПроектуВерсии - Строка - Путь ко временному каталогу проекта в формате EDT
// * ПутьКФайламПроектаВерсии - Строка - Путь ко временному каталогу файлов исходников (.../src/) // * ПутьКФайламПроектаВерсии - Строка - Путь ко временному каталогу файлов исходников (.../src/)
// * ИмяФайлаЛога - Строка - Путь к файлу логов текущей версии // * ИмяФайлаЛога - Строка - Путь к файлу логов текущей версии
// РеквизитыХранилища - Структура - Параметры хранилища: Функция ПараметрыВерсииДляКоммита()
// * ПутьКПроекту - Строка - Полный путь к каталогу проекта, находящемуся в репозитории
// * ПутьКФайламПроекта - Строка - Полный путь каталогу исходных файлов проекта в репозитории (.../src/) ПараметрыВерсии = Новый Структура("Ссылка, Код, КаталогВременныхФайлов, Комментарий, ДатаСоздания,
// * ВерсияВGit - СправочникСсылка.ВерсииХранилища - ссылка на помещенную версию, записанную в элементе объекта хранилища. | Пользователь, Email, ПользовательХранилища, КоличествоМетаданных, ВыгрузкаИзменений, ИмяПроектаEDT");
// * Код - Строка - Код помещенной версии Возврат ПараметрыВерсии;
// * ДобавлятьМеткиСВерсиейКонфигурации - Булево - Признак добавления меток с версией конфигурации
// * АдресРепозиторияGit - Строка - адрес Git-сервера КонецФункции
// * ИмяВетки - Строка - Имя ветки в Git-репозитории
// Параметры:
// Хранилище - СправочникСсылка.ХранилищаКонфигураций -
// Возвращаемое значение:
// Структура:
// * ПутьКПроекту - Строка - Полный путь к каталогу проекта, находящемуся в репозитории
// * ПутьКФайламПроекта - Строка - Полный путь каталогу исходных файлов проекта в репозитории (.../src/)
// * ВерсияВGit - СправочникСсылка.ВерсииХранилища - ссылка на помещенную версию, записанную в элементе объекта хранилища.
// * Код - Строка - Код помещенной версии
// * ДобавлятьМеткиСВерсиейКонфигурации - Булево - Признак добавления меток с версией конфигурации
// * АдресРепозиторияGit - Строка - адрес Git-сервера
// * ИмяВетки - Строка - Имя ветки в Git-репозитории
// * ЛокальныйКаталогGit - Строка - Локальный путь к каталогу репозитория Git
// * КаталогВыгрузкиВерсий - Строка
// * МинимальноеКоличествоМетаданных - Число
// * КоличествоКоммитов - Число
// * ОтключитьЛогирование - Булево
// * РазрешитьПомещатьАнонимноЕслиНеНайденПользователь - Булево
// * ИмяПроектаEDT - Строка
// * ВыгружатьИзменения - Булево
// * КонвертироватьВФорматEDT - Булево
// * ДобавлятьМеткиСВерсиейКонфигурации - Булево
//
Функция ПараметрыХранилищаДляКоммита(Знач Хранилище)
ИменаРеквизитов = Новый Структура("ВерсияВGit, Код, ЛокальныйКаталогGit, КаталогВыгрузкиВерсий, АдресРепозиторияGit,
| ИмяВетки, МинимальноеКоличествоМетаданных, КоличествоКоммитов, ОтключитьЛогирование,
| РазрешитьПомещатьАнонимноЕслиНеНайденПользователь, ИмяПроектаEDT, ВыгружатьИзменения,
| КонвертироватьВФорматEDT, ДобавлятьМеткиСВерсиейКонфигурации",
"ВерсияВGit",
"ВерсияВGit.Код");
РеквизитыХранилища = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Хранилище, ИменаРеквизитов);
// Путь к проекту в репозитории /path_to_git/Project/
РеквизитыХранилища.Вставить("ПутьКПроекту", ПутьКПроекту(РеквизитыХранилища));
// Путь к файлам конфигурации проекта в репозитории /path_to_git/Project/src/
РеквизитыХранилища.Вставить("ПутьКФайламПроекта", ПутьКФайламПроекта(РеквизитыХранилища));
Возврат РеквизитыХранилища;
КонецФункции
// Выполняются действия перед коммитом версии, перед запуском командного файла, выполняющего копирование
// файлов версии в каталог репозитория и последующим коммитом изменений. Этот метод можно дополнять в
// подключаемых расширениях для реализации дополнительной логики после выполнения коммита
// в локальный репозиторий.
//
// Параметры:
// ПараметрыВерсии - См. ПараметрыВерсииДляКоммита
// РеквизитыХранилища - См. ПараметрыХранилищаДляКоммита
// Возвращаемое значение: // Возвращаемое значение:
// Булево - Истина, если действия выполнены успешно, Ложь - если необходимо прервать коммит версии. // Булево - Истина, если действия выполнены успешно, Ложь - если необходимо прервать коммит версии.
Функция ВыполнитьДействияПередКоммитом(ПараметрыВерсии, РеквизитыХранилища) Функция ВыполнитьДействияПередКоммитом(ПараметрыВерсии, РеквизитыХранилища)
Если ЗначениеЗаполнено(РеквизитыХранилища.АдресРепозиторияGit) Тогда Если ЗначениеЗаполнено(РеквизитыХранилища.АдресРепозиторияGit) И ЗначениеЗаполнено(РеквизитыХранилища.ВерсияВGit) Тогда
ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер(); ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер();
ДобавлятьМетки = ?(РеквизитыХранилища.ДобавлятьМеткиСВерсиейКонфигурации, "--tags", ""); ДобавлятьМетки = ?(РеквизитыХранилища.ДобавлятьМеткиСВерсиейКонфигурации, "--tags", "");
@ -3574,27 +3619,8 @@
// после выполнения коммита в локальный репозиторий. // после выполнения коммита в локальный репозиторий.
// //
// Параметры: // Параметры:
// ПараметрыВерсии - Структура - Параметры версии: // ПараметрыВерсии - См. ПараметрыВерсииДляКоммита
// * Ссылка - СправочникСсылка.ВерсииХранилища - Ссылка на помещенную версию в репозиторий // РеквизитыХранилища - См. ПараметрыХранилищаДляКоммита
// * Код - Строка - Код помещенной версии
// * Комментарий - Строка - Комментарий версии из Хранилища 1С
// * ДатаСоздания - Дата - Дата создания версии
// * Пользователь - Строка - Имя пользователя Git-репозитория
// * Email - Строка - E-mail пользователя Git-репозитория
// * ПользовательХранилища - Строка - Имя пользователя Хранилища 1С
// * КоличествоМетаданных - Число - Количество метаданных в версии
// * ВыгрузкаИзменений - Булево - Признак частичной выгрузки изменений версии
// * ПутьКПроектуВерсии - Строка - Путь ко временному каталогу проекта в формате EDT
// * ПутьКФайламПроектаВерсии - Строка - Путь ко временному каталогу файлов исходников (.../src/)
// * ИмяФайлаЛога - Строка - Путь к файлу логов текущей версии
// РеквизитыХранилища - Структура - Параметры хранилища:
// * ПутьКПроекту - Строка - Полный путь к каталогу проекта, находящемуся в репозитории
// * ПутьКФайламПроекта - Строка - Полный путь каталогу исходных файлов проекта в репозитории (.../src/)
// * ВерсияВGit - СправочникСсылка.ВерсииХранилища - ссылка на помещенную версию, записанную в элементе объекта хранилища.
// * Код - Строка - Код помещенной версии
// * ДобавлятьМеткиСВерсиейКонфигурации - Булево - Признак добавления меток с версией конфигурации
// * АдресРепозиторияGit - Строка - адрес Git-сервера
// * ИмяВетки - Строка - Имя ветки в Git-репозитории
// Возвращаемое значение: // Возвращаемое значение:
// Булево - Истина, если действия выполнены успешно, Ложь - если необходимо прервать дальнейшую обработку. // Булево - Истина, если действия выполнены успешно, Ложь - если необходимо прервать дальнейшую обработку.
Функция ВыполнитьДействаияПослеКоммита(ПараметрыВерсии, РеквизитыХранилища) Функция ВыполнитьДействаияПослеКоммита(ПараметрыВерсии, РеквизитыХранилища)
@ -4034,7 +4060,7 @@
// Параметры: // Параметры:
// ИмяФайлаИндексов - Строка - Полный путь к файлу индексов // ИмяФайлаИндексов - Строка - Полный путь к файлу индексов
// Возвращаемое значение: // Возвращаемое значение:
// ТаблицаЗначение - таблица индексов // См. СозадатьТаблицуИндексов
Функция ПрочитатьТаблицуИндексов(ИмяФайлаИндексов) Функция ПрочитатьТаблицуИндексов(ИмяФайлаИндексов)
ТаблицаИндексов = СозадатьТаблицуИндексов(); ТаблицаИндексов = СозадатьТаблицуИндексов();
@ -4085,11 +4111,15 @@
КонецФункции КонецФункции
// Создает таблицу индексов структуры метаданных // Создает таблицу индексов структуры метаданных
// //
// Параметры:
// Возвращаемое значение: // Возвращаемое значение:
// ТаблицаЗначений - Таблица индексов // ТаблицаЗначений - Таблица индексов:
// * UUID - Строка
// * ХешПолногоИмени - Строка
// * Уровень - Число
// * ПолноеИмя - Строка
Функция СозадатьТаблицуИндексов() Функция СозадатьТаблицуИндексов()
КС = Новый КвалификаторыСтроки(240); КС = Новый КвалификаторыСтроки(240);
@ -4112,7 +4142,7 @@
// Сохраняет табилцу индексов // Сохраняет табилцу индексов
// //
// Параметры: // Параметры:
// Таблица - ТаблицаЗначений - таблица индексов // Таблица - См. СозадатьТаблицуИндексов
// ИмяФайлаИндексов - Строка - имя файла индексов // ИмяФайлаИндексов - Строка - имя файла индексов
Процедура ЗаписатьТаблицуИндексов(Таблица, ИмяФайлаИндексов) Процедура ЗаписатьТаблицуИндексов(Таблица, ИмяФайлаИндексов)

View File

@ -824,7 +824,7 @@
// Создание отсутствующих каталогов рекурсивно // Создание отсутствующих каталогов рекурсивно
// //
// Параметры: // Параметры:
// ЛокальныйКаталогGit - Начальный каталог проверки // ЛокальныйКаталогGit - Строка - Начальный каталог проверки
// Сегменты - Массив - Сегменты пути в репозитории // Сегменты - Массив - Сегменты пути в репозитории
// РазделительПути - Строка - Разделитель пути // РазделительПути - Строка - Разделитель пути
&НаСервере &НаСервере