Skip to content

Добавил выгрузку с учетом increment #90

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Nov 9, 2017
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ exec\.log
bdd-log\.xml

*.ospx
oscript_modules/
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
.ЗависитОт("cmdline", "0.4.1")
.ЗависитОт("tempfiles")
.ЗависитОт("tool1cd", "0.4")
.ЗависитОт("v8runner", "0.7.0")
.ЗависитОт("v8runner")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Почему убрана зависимость от конкретной версии v8runner ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаю добавить зависимость от последней версии v8runner

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Та ну..., что-бы потом забыть об этой зависимости, как вот ниже ("1commands", "1.1.1") а gitrunner уже давно 1.5 версии!

.ЗависитОт("gitrunner", "1.1.0")
.ЗависитОт("strings")
.ЗависитОт("1commands", "1.1.1")
Expand Down
5 changes: 4 additions & 1 deletion src/core/Классы/КомандаExport.os
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-auto-set-tags", "Автоматическая установка тэгов по версия конфиграции");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-increment", "Частичная выгрузка конфигурации");


Парсер.ДобавитьКоманду(ОписаниеКоманды);
Expand All @@ -49,6 +50,7 @@
ПроверитьАвторовХранилища = ПараметрыКоманды["-check-authors"];
ПрерватьВыполнениеБезКомментарияКВерсии = ПараметрыКоманды["-stop-if-empty-comment"];
АвтоматическаяУстановкаТэговПоВерсиям = ПараметрыКоманды["-auto-set-tags"];
ТолькоИзменения = ПараметрыКоманды["-increment"];

Если ЛокальныйКаталогГит = Неопределено Тогда

Expand Down Expand Up @@ -119,7 +121,8 @@
ПрерватьВыполнениеБезКомментарияКВерсии,
,
АвтоматическаяУстановкаТэговПоВерсиям,
ПроверитьАвторовХранилища);
ПроверитьАвторовХранилища,
ТолькоИзменения);
ДополнительныеПараметры.Лог.Информация("Выгрузка завершена");

Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
Expand Down
78 changes: 61 additions & 17 deletions src/core/Классы/МенеджерСинхронизации.os
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
Перем ДоменПочтыДляGitПоУмолчанию Экспорт;
Перем ВерсияПлатформы Экспорт;
Перем ПереименовыватьФайлМодуляОбычнойФормы Экспорт;
Перем ТолькоИзменения Экспорт;

// Выполняет выгрузку конфигурации в файлы
// и распределение файлов по каталогам согласно иерархии метаданных.
Expand All @@ -49,9 +50,26 @@
СоздатьКаталог(ВыходнойКаталог);
КонецЕсли;

КаталогВыгрузки = ?(ТолькоИзменения, ВыходнойКаталог, КаталогПлоскойВыгрузки);
Попытка
ВыгрузитьМодулиКонфигурации(ФайлКонфигурации, КаталогПлоскойВыгрузки, Формат);
РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогПлоскойВыгрузки, ВыходнойКаталог, Формат);
ВыгрузитьМодулиКонфигурации(ФайлКонфигурации, КаталогВыгрузки, Формат);
Если НЕ ТолькоИзменения Тогда
РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогПлоскойВыгрузки, ВыходнойКаталог, Формат);
Иначе
МассивФайлов = НайтиФайлы(КаталогВыгрузки, "*.bin", Истина);
Для каждого Файл из МассивФайлов Цикл
Если Нрег(Прав(Файл.ПолноеИмя, 5)) = ".form" Или Нрег(Файл.Имя) = "form.bin" Тогда
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pumbaEO Я недавно делал аналогичное замечание - условие на .form никогда не юзается, потому что ищем-то *.bin
Нужно убрать это условие

КаталогФормы = ОбъединитьПути(Файл.Путь, Файл.ИмяБезРасширения);
СоздатьКаталог(КаталогФормы);
РаспаковатьКонтейнерМетаданных(Файл.ПолноеИмя, КаталогФормы);
КонецЕсли;
КонецЦикла;

Если Новый Файл(ОбъединитьПути(КаталогВыгрузки, "renames.txt")).Существует() Тогда
УдалитьВременныеФайлыПриНеобходимости(ОбъединитьПути(КаталогВыгрузки, "renames.txt"));
КонецЕсли;

КонецЕсли;
Исключение
УдалитьВременныеФайлыПриНеобходимости(КаталогПлоскойВыгрузки);
ВызватьИсключение;
Expand Down Expand Up @@ -115,18 +133,36 @@
СоздатьКаталог(КаталогПлоскойВыгрузки);
КонецЕсли;

МассивФайлов = НайтиФайлы(КаталогПлоскойВыгрузки, ПолучитьМаскуВсеФайлы());
Если МассивФайлов.Количество() <> 0 Тогда
ВызватьИсключение "В каталоге <"+КаталогПлоскойВыгрузки+"> не должно быть файлов";
КонецЕсли;
Если НЕ ТолькоИзменения Тогда
МассивФайлов = НайтиФайлы(КаталогПлоскойВыгрузки, ПолучитьМаскуВсеФайлы());
Если МассивФайлов.Количество() <> 0 Тогда
ВызватьИсключение "В каталоге <"+КаталогПлоскойВыгрузки+"> не должно быть файлов";
КонецЕсли;

ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска();
ПараметрыЗапуска.Добавить("/Visible");
ПараметрДампаКонфигурации = СтрШаблон("/DumpConfigToFiles ""%1"" -format %2", КаталогПлоскойВыгрузки, ТРег(Формат));
ПараметрыЗапуска.Добавить(ПараметрДампаКонфигурации);
ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска();
ПараметрыЗапуска.Добавить("/Visible");
ПараметрДампаКонфигурации = СтрШаблон("/DumpConfigToFiles ""%1"" -format %2", КаталогПлоскойВыгрузки, ТРег(Формат));
ПараметрыЗапуска.Добавить(ПараметрДампаКонфигурации);

ВыполнитьКомандуКонфигуратора(Конфигуратор, ПараметрыЗапуска);

ВыполнитьКомандуКонфигуратора(Конфигуратор, ПараметрыЗапуска);
Иначе

Попытка
Конфигуратор.ВыгрузитьКонфигурациюВФайлы(КаталогПлоскойВыгрузки, , ТолькоИзменения);
Исключение

ОписаниеОшибки = ОписаниеОшибки();
Если ПроверитьОписаниеОшибкиНаКритичность(ОписаниеОшибки) Тогда
УдалитьВременныеФайлыПриНеобходимости(Конфигуратор.КаталогСборки());
ВызватьИсключение;
КонецЕсли;
КонецПопытки;

УдалитьВременныеФайлыПриНеобходимости(Конфигуратор.КаталогСборки());

КонецЕсли;

КонецПроцедуры

Функция ПолучитьМенеджерКонфигуратора()
Expand Down Expand Up @@ -403,7 +439,7 @@

КонецПроцедуры

Процедура РаспаковатьКонтейнерМетаданных(Знач ФайлРаспаковки, Знач КаталогРаспаковки, Знач Переименования, Знач КорневойКаталог)
Процедура РаспаковатьКонтейнерМетаданных(Знач ФайлРаспаковки, Знач КаталогРаспаковки, Знач Переименования = Неопределено, Знач КорневойКаталог = Неопределено)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А почему Знач КорневойКаталог = Неопределено ?
Это же строка в чистом виде.
1 Предлагаю Знач КорневойКаталог = ""
2 Добавить утверждение - корневой каталог не должен быть пуст, если Переименования <> Неопределено

  • иначе это бессмысленно


dllРаспаковать(ФайлРаспаковки, КаталогРаспаковки);
ВыполнитьСборкуМусора(); // см. камент к процедуре dllРаспаковать
Expand All @@ -415,10 +451,11 @@
СтароеИмяФайла = ФайлМодуля.ПолноеИмя;
НовоеИмяФайла = ОбъединитьПути(ФайлМодуля.Путь, "Module.bsl");
ПереместитьФайл(СтароеИмяФайла, НовоеИмяФайла);
ДобавитьПереименование(Переименования,
СтрЗаменить(СтароеИмяФайла, КорневойКаталог, ""),
СтрЗаменить(НовоеИмяФайла, КорневойКаталог, ""));

Если Переименования <> Неопределено Тогда
ДобавитьПереименование(Переименования,
СтрЗаменить(СтароеИмяФайла, КорневойКаталог, ""),
СтрЗаменить(НовоеИмяФайла, КорневойКаталог, ""));
КонецЕсли;
КонецЦикла;

КонецЕсли;
Expand Down Expand Up @@ -911,7 +948,8 @@
Знач ПрерватьВыполнениеБезКомментарияКВерсии = Ложь,
Знач ИмяВетки = Неопределено,
Знач АвтоматическаяУстановкаТэговПоВерсиям = Ложь,
Знач ПроверитьАвторовХранилища = Ложь) Экспорт
Знач ПроверитьАвторовХранилища = Ложь,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ребята, в методе СинхронизироватьХранилищеКонфигурацийСГит уже 13 параметров!!

Контрибьюторы, Неужели не болит душа при добавлении очередного параметра??

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Убрал 13 параметр.

Знач ТолькоИзменения = Ложь) Экспорт
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pumbaEO Тут путаница с одинаковым названием и глобальной переменной, и параметра метода.
Для разруливания этой путаницы тебе пришлось добавить аж спец.метод УстановитьРежимТолькоОбновленияФайлов, который вызывается всего один раз, состоит из одной строки :(

Предлагаю

  • либо параметр метода либо глобальную переменную назвать ВыгружатьТолькоИзменения, а вторую ТолькоИзменения (или наоборот)

  • А метод УстановитьРежимТолькоОбновленияФайлов удалить

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну вот как раз хотел спец метод добавить, что-бы не кидать в параметр + 1

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Так 13-й параметр-то остался :(
т.е. метод создан, но никто его не вызывает?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну я шел от обратного, а потом оказалось игла в яйце, яйцо в ... и т.д.


Лог.Информация("Начало синхронизации с git");
ТаблицаИсторииХранилища = ПрочитатьИзХранилищаИсториюКоммитовСАвторами(ФайлХранилища);
Expand All @@ -921,6 +959,7 @@
Лог.Информация("Номер синхронизированной версии: " + ТекущаяВерсия);
СледующаяВерсия = ТекущаяВерсия + 1;

УстановитьРежимТолькоОбновленияФайлов(ТолькоИзменения);
Если НачальнаяВерсия > 0 Тогда
СледующаяВерсия = Макс(НачальнаяВерсия, СледующаяВерсия);
КонецЕсли;
Expand Down Expand Up @@ -1421,6 +1460,10 @@
Возврат КоличествоЦикловОжиданияЛицензииПоУмолчанию;
КонецФункции

Функция УстановитьРежимТолькоОбновленияФайлов(Значение) Экспорт
ТолькоИзменения = Значение;
КонецФункции


//////////////////////////////////////////////////////////////////////////////////////////////
СистемнаяИнформация = Новый СистемнаяИнформация;
Expand All @@ -1431,3 +1474,4 @@
ДоменПочтыДляGitПоУмолчанию = "localhost";
УдалятьВременныеФайлы = Ложь;
КоличествоЦикловОжиданияЛицензииПоУмолчанию = 1;
ТолькоИзменения = Ложь;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавить перевод строки для исключения проблем с Гитом