Skip to content

Commit 6a515d2

Browse files
committed
Finish stop-sync-if-empty-comment
2 parents f4aeb1d + 50e09a2 commit 6a515d2

File tree

7 files changed

+67
-15
lines changed

7 files changed

+67
-15
lines changed

src/core/Классы/КомандаExport.os

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");
3030

3131
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений");
32+
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
3233

3334
Парсер.ДобавитьКоманду(ОписаниеКоманды);
3435

@@ -42,6 +43,7 @@
4243
МаксВерсия = ПараметрыКоманды["-maxversion"];
4344
Лимит = ПараметрыКоманды["-limit"];
4445
ПереименовыватьФайлМодуляОбычнойФормы = ПараметрыКоманды["-process-fatform-modules"];
46+
ПрерватьВыполнениеБезКомментарияКВерсии = ПараметрыКоманды["-stop-if-empty-comment"];
4547

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

@@ -73,6 +75,12 @@
7375

7476
КонецЕсли;
7577

78+
Если ПрерватьВыполнениеБезКомментарияКВерсии = Неопределено Тогда
79+
80+
ПрерватьВыполнениеБезКомментарияКВерсии = Ложь;
81+
82+
КонецЕсли;
83+
7684
МаксВерсия = Число(МаксВерсия);
7785
МинВерсия = Число(МинВерсия);
7886
Лимит = Число(Лимит);
@@ -82,7 +90,16 @@
8290
Распаковщик.ДоменПочтыДляGitПоУмолчанию = ПараметрыКоманды["-email"];
8391
Распаковщик.ПереименовыватьФайлМодуляОбычнойФормы = ПереименовыватьФайлМодуляОбычнойФормы;
8492
ДополнительныеПараметры.Лог.Информация("Начинаю выгрузку исходников");
85-
РаспаковщикКонфигурации.ВыполнитьЭкспортИсходников(Распаковщик, ПараметрыКоманды["ПутьКХранилищу"], ЛокальныйКаталогГит, МинВерсия, МаксВерсия, Формат,,, Лимит);
93+
РаспаковщикКонфигурации.ВыполнитьЭкспортИсходников(Распаковщик,
94+
ПараметрыКоманды["ПутьКХранилищу"],
95+
ЛокальныйКаталогГит,
96+
МинВерсия,
97+
МаксВерсия,
98+
Формат,
99+
,
100+
,
101+
Лимит,
102+
ПрерватьВыполнениеБезКомментарияКВерсии);
86103
ДополнительныеПараметры.Лог.Информация("Выгрузка завершена");
87104

88105
Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;

src/core/Классы/КомандаSync.os

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-push-every-n-commits", "<число> количество коммитов до промежуточной отправки на удаленный сервер");
3131
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений");
3232
Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");
33+
Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
3334

3435
Парсер.ДобавитьКоманду(ОписаниеКоманды);
3536

@@ -47,6 +48,7 @@
4748
Парсер.ДобавитьИменованныйПараметр("-tempdir", "<Путь к каталогу временных файлов>");
4849
Парсер.ДобавитьИменованныйПараметр("-push-every-n-commits", "<число> количество коммитов до промежуточной отправки на удаленный сервер");
4950
Парсер.ДобавитьПараметрФлаг ("-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl");
51+
Парсер.ДобавитьПараметрФлагКоманды("-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
5052

5153
КонецПроцедуры // ЗарегистрироватьКоманду
5254

@@ -67,6 +69,7 @@
6769
Лимит = ПараметрыКоманды["-limit"];
6870
КоличествоКоммитовДоPush = ПараметрыКоманды["-push-every-n-commits"];
6971
ПереименовыватьФайлМодуляОбычнойФормы = ПараметрыКоманды["-process-fatform-modules"];
72+
ПрерватьВыполнениеБезКомментарияКВерсии = ПараметрыКоманды["-stop-if-empty-comment"];
7073

7174
Если НачальнаяВерсия = Неопределено Тогда
7275

@@ -92,6 +95,12 @@
9295

9396
КонецЕсли;
9497

98+
Если ПрерватьВыполнениеБезКомментарияКВерсии = Неопределено Тогда
99+
100+
ПрерватьВыполнениеБезКомментарияКВерсии = Ложь;
101+
102+
КонецЕсли;
103+
95104
НачальнаяВерсия = Число(НачальнаяВерсия);
96105
КонечнаяВерсия = Число(КонечнаяВерсия);
97106
Лимит = Число(Лимит);
@@ -149,7 +158,8 @@
149158
Формат,
150159
КоличествоКоммитовДоPush,
151160
URLРепозитория,
152-
Лимит);
161+
Лимит,
162+
ПрерватьВыполнениеБезКомментарияКВерсии);
153163

154164
Лог.Информация("Отправка изменений на удаленный узел");
155165
КодВозврата = Распаковщик.ВыполнитьGitPush(ЛокальныйКаталогГит, URLРепозитория, ИмяВетки);

src/core/Классы/МенеджерСинхронизации.os

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -918,8 +918,8 @@
918918
Знач Формат = Неопределено,
919919
Знач КоличествоКоммитовДоPush = 0,
920920
Знач URLРепозитория = Неопределено,
921-
Знач Лимит = 0
922-
) Экспорт
921+
Знач Лимит = 0,
922+
Знач ПрерватьВыполнениеБезКомментарияКВерсии = Ложь) Экспорт
923923

924924
Лог.Информация("Начало синхронизации с git");
925925
ТаблицаИсторииХранилища = ПрочитатьИзХранилищаИсториюКоммитовСАвторами(ФайлХранилища);
@@ -952,6 +952,10 @@
952952
Формат = РежимВыгрузкиФайлов.Авто;
953953
КонецЕсли;
954954

955+
Если ПрерватьВыполнениеБезКомментарияКВерсии = Неопределено Тогда
956+
ПрерватьВыполнениеБезКомментарияКВерсии = Ложь;
957+
КонецЕсли;
958+
955959
Лог.Отладка("Используется формат выгрузки " + Формат);
956960

957961
МаксимальнаяВерсияДляРазбора = ОпределитьМаксимальнуюВерсиюСУчетомОграниченияСверху(ТаблицаИсторииХранилища, ТекущаяВерсия, КонечнаяВерсия);
@@ -969,6 +973,11 @@
969973
ВызватьИсключение "Нашли следующую версию, а автор не прописан "+СледующаяВерсия + " автор "+СтрокаВерсии.Автор;
970974
КонецЕсли;
971975

976+
Если ПустаяСтрока(СтрокаВерсии.Комментарий)
977+
И ПрерватьВыполнениеБезКомментарияКВерсии Тогда
978+
ВызватьИсключение СтрШаблон("Нашли следующую версию %1, а комментарий не задан! Автор %2.", СледующаяВерсия, СтрокаВерсии.Автор);;
979+
КонецЕсли;
980+
972981
Попытка
973982
Лог.Информация("Получаем исходники для версии " + СледующаяВерсия + ", " + ТекущаяДата());
974983

src/core/Модули/РаспаковщикКонфигурации.os

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@
7878
Знач Формат = Неопределено,
7979
Знач КоличествоКоммитовДоPush = 0,
8080
Знач URLРепозитория = Неопределено,
81-
Знач Лимит = 0) Экспорт
81+
Знач Лимит = 0,
82+
Знач ПрерватьВыполнениеБезКомментарияКВерсии) Экспорт
8283

8384
ФайлБазыДанныхХранилища = ПолучитьПутьКБазеДанныхХранилища(ПутьКХранилищу);
8485
Распаковщик.СинхронизироватьХранилищеКонфигурацийСГит(ЛокальныйКаталогГит,
@@ -88,7 +89,8 @@
8889
Формат,
8990
КоличествоКоммитовДоPush,
9091
URLРепозитория,
91-
Лимит);
92+
Лимит,
93+
ПрерватьВыполнениеБезКомментарияКВерсии);
9294

9395
КонецПроцедуры // ВыполнитьЭкспортИсходников
9496

src/xml-config.os

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@
9696
Ключ = "ПутьGit";
9797
ИначеЕсли КлючИЗначение.Ключ = "push-every-n-commits" Тогда
9898
Ключ = "КоличествоКоммитовДоPush";
99+
ИначеЕсли КлючИЗначение.Ключ = "stop-if-empty-comment" Тогда
100+
Ключ = "ПрерватьВыполнениеБезКомментарияКВерсии";
99101
Иначе
100102
ВызватьИсключение НекорректнаяСтруктураНастроек();
101103
КонецЕсли;

tests/git-sync-test.os

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
Перем юТест;
1010
Перем Распаковщик;
1111
Перем Лог;
12+
Перем ЭтоWindows;
1213

1314
Процедура Инициализация()
1415

@@ -129,7 +130,7 @@
129130

130131
Распаковщик.РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогПлоскойВыгрузки, КаталогИерархическойВыгрузки, РежимВыгрузкиФайлов.Плоский);
131132

132-
ФайлПереименований = Новый Файл(КаталогИерархическойВыгрузки + "\renames.txt");
133+
ФайлПереименований = Новый Файл(ОбъединитьПути(КаталогИерархическойВыгрузки,"renames.txt"));
133134
Утверждения.ПроверитьИстину(ФайлПереименований.Существует(), "Не удалось разложим модули 1С по иерархии - не существует файл <"+ФайлПереименований.ПолноеИмя+">");
134135

135136
МассивФайлов = НайтиФайлы(КаталогИерархическойВыгрузки,"*.*");
@@ -355,7 +356,7 @@
355356
ИмяФайлаЛогаГит = ВременныеФайлы.НовоеИмяФайла("txt");
356357

357358
Батник = Новый КомандныйФайл;
358-
Батник.ДобавитьКоманду("cd /d " + ОбернутьВКавычки(КаталогИсходников));
359+
Батник.ДобавитьКоманду(СтрШаблон("cd %1 %2",?(ЭтоWindows, "/d", ""), ОбернутьВКавычки(КаталогИсходников)));
359360
Батник.ДобавитьКоманду("git log --pretty=oneline >"+ОбернутьВКавычки(ИмяФайлаЛогаГит));
360361

361362
КодВозврата = Батник.Исполнить();
@@ -426,7 +427,7 @@
426427
ВременныйРепо = ВыполнитьКлонированиеТестовогоРепо();
427428

428429
СоздатьФайлАвторовГит_ДляТестов(ВременныйРепо.ЛокальныйРепозиторий);
429-
Утверждения.ПроверитьИстину(Новый Файл(ВременныйРепо.ЛокальныйРепозиторий+"\AUTHORS").Существует());
430+
Утверждения.ПроверитьИстину(Новый Файл(ОбъединитьПути(ВременныйРепо.ЛокальныйРепозиторий,"AUTHORS")).Существует());
430431

431432
Распаковщик.ВыполнитьКоммитГит(ВременныйРепо.ЛокальныйРепозиторий, "test commit", "Администратор <admin@localhost>");
432433

@@ -440,7 +441,7 @@
440441
ВременныйРепо = ВыполнитьКлонированиеТестовогоРепо();
441442

442443
СоздатьФайлАвторовГит_ДляТестов(ВременныйРепо.ЛокальныйРепозиторий);
443-
Утверждения.ПроверитьИстину(Новый Файл(ВременныйРепо.ЛокальныйРепозиторий+"\AUTHORS").Существует());
444+
Утверждения.ПроверитьИстину(Новый Файл(ОбъединитьПути(ВременныйРепо.ЛокальныйРепозиторий,"AUTHORS")).Существует());
444445

445446
Распаковщик.ВыполнитьКоммитГит(ВременныйРепо.ЛокальныйРепозиторий, "test commit", "Администратор <admin@localhost>");
446447

@@ -472,19 +473,25 @@
472473
ФайлЛога = ВременныеФайлы.СоздатьФайл("log");
473474
Батник = Новый КомандныйФайл();
474475
Батник.Создать();
475-
Батник.ДобавитьКоманду("chcp 1251 > nul");
476-
Батник.ДобавитьКоманду(СтроковыеФункции.ПодставитьПараметрыВСтроку("cd /d ""%1""", ЛокальныйКаталог));
476+
Если ЭтоWindows Тогда
477+
Батник.ДобавитьКоманду("chcp 1251 > nul");
478+
КонецЕсли;
479+
Батник.ДобавитьКоманду(СтрШаблон("cd %1 ""%2""",?(ЭтоWindows, "/d", ""), ЛокальныйКаталог));
477480

478481
ПараметрыКоманды = Новый Массив;
479482
ПараметрыКоманды.Добавить("git clone");
480483
ПараметрыКоманды.Добавить(URLРепозитария);
481-
ПараметрыКоманды.Добавить(ОбернутьВКавычки("%CD%"));
484+
ПараметрыКоманды.Добавить(ОбернутьВКавычки(ЛокальныйКаталог));
482485
ПараметрыКоманды.Добавить(СуффиксПеренаправленияВывода(ФайлЛога, Истина));
483486

484487
КоманднаяСтрока = СобратьКоманднуюСтроку(ПараметрыКоманды);
485488
Лог.Отладка("Командная строка git clone:" + Символы.ПС + КоманднаяСтрока);
486489
Батник.ДобавитьКоманду(КоманднаяСтрока);
487-
Батник.ДобавитьКоманду("exit /b %ERRORLEVEL%");
490+
Если Не ЭтоWindows Тогда
491+
Батник.ДобавитьКоманду("exit $#");
492+
Иначе
493+
Батник.ДобавитьКоманду("exit /b %ERRORLEVEL%");
494+
КонецЕсли;
488495

489496
РезультатКлонирования = Батник.Исполнить();
490497
// вывод всех сообщений от Git
@@ -537,5 +544,7 @@
537544
КонецПроцедуры
538545

539546
//////////////////////////////////////////////////////////////////////////////
547+
СистемнаяИнформация = Новый СистемнаяИнформация;
548+
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
540549

541550
Инициализация();

tests/test-export_with_min_max_versions.os

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
Перем юТест;
1010
Перем Распаковщик;
1111
Перем Лог;
12+
Перем ЭтоWindows;
1213

1314
Процедура Инициализация()
1415

@@ -89,7 +90,7 @@
8990
ИмяФайлаЛогаГит = ВременныеФайлы.НовоеИмяФайла("txt");
9091

9192
Батник = Новый КомандныйФайл;
92-
Батник.ДобавитьКоманду("cd /d " + ОбернутьВКавычки(КаталогИсходников));
93+
Батник.ДобавитьКоманду(СтрШаблон("cd %1 %2",?(ЭтоWindows, "/d", ""), ОбернутьВКавычки(КаталогИсходников)));
9394
Батник.ДобавитьКоманду("git log --pretty=oneline >"+ОбернутьВКавычки(ИмяФайлаЛогаГит));
9495

9596
КодВозврата = Батник.Исполнить();
@@ -153,5 +154,7 @@
153154
КонецФункции
154155

155156
//////////////////////////////////////////////////////////////////////////////
157+
СистемнаяИнформация = Новый СистемнаяИнформация;
158+
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
156159

157160
Инициализация();

0 commit comments

Comments
 (0)