Skip to content

Commit d9f6a51

Browse files
committed
Добавил ключ -limit.
Переработал модули и тесты
1 parent 88b8949 commit d9f6a51

File tree

6 files changed

+117
-247
lines changed

6 files changed

+117
-247
lines changed

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

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -870,7 +870,8 @@
870870
Знач КонечнаяВерсия = 0,
871871
Знач Формат = Неопределено,
872872
Знач КоличествоКоммитовДоPush = 0,
873-
Знач URLРепозитория = Неопределено
873+
Знач URLРепозитория = Неопределено,
874+
Знач Лимит = 0
874875
) Экспорт
875876

876877
Лог.Информация("Начало синхронизации с git");
@@ -880,8 +881,18 @@
880881

881882
Лог.Информация("Номер синхронизированной версии: " + ТекущаяВерсия);
882883
СледующаяВерсия = ТекущаяВерсия + 1;
884+
885+
Если Лимит <> 0 Тогда
886+
КонечнаяВерсия = ТекущаяВерсия + Лимит;
887+
КонецЕсли;
888+
883889
Если НачальнаяВерсия <> 0 Тогда
884-
СледующаяВерсия = Число(НачальнаяВерсия);
890+
Если Лимит <> 0 Тогда
891+
СледующаяВерсия = Число(НачальнаяВерсия);
892+
КонечнаяВерсия = СледующаяВерсия + Лимит;
893+
Иначе
894+
СледующаяВерсия = Макс(СледующаяВерсия, Число(НачальнаяВерсия));
895+
КонецЕсли;
885896
КонецЕсли;
886897

887898

src/gitsync.os

Lines changed: 56 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@
130130
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-format", "<hierarchical|plain>");
131131
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-minversion", "<номер минимальной версии для выгрузки>");
132132
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-maxversion", "<номер максимальной версии для выгрузки>");
133+
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-limit", "<выгрузить неболее limit версий от текущей выгруженной>");
133134

134135
Парсер.ДобавитьКоманду(Команда);
135136

@@ -184,7 +185,10 @@
184185
Параметры["-minversion"],
185186
Параметры["-maxversion"],
186187
Параметры["-format"],
187-
Параметры["-branch"]);
188+
Параметры["-branch"],
189+
0,
190+
Параметры["-limit"]
191+
);
188192

189193
КонецЕсли;
190194

@@ -323,7 +327,8 @@
323327
Знач КонечнаяВерсия = 0,
324328
Знач Формат = Неопределено,
325329
Знач ИмяВетки = Неопределено,
326-
Знач КоличествоКоммитовДоPush = 0) Экспорт
330+
Знач КоличествоКоммитовДоPush = 0,
331+
Знач Лимит = 0) Экспорт
327332

328333
Лог.Информация("Начинаю синхронизацию хранилища 1С и репозитария GIT");
329334

@@ -339,6 +344,19 @@
339344
КоличествоКоммитовДоPush = 0;
340345
КонецЕсли;
341346

347+
Если НачальнаяВерсия = "" Тогда
348+
НачальнаяВерсия = 0;
349+
КонецЕсли;
350+
351+
Если КонечнаяВерсия = "" Тогда
352+
КонечнаяВерсия = 0;
353+
КонецЕсли;
354+
355+
Если Лимит = "" Тогда
356+
Лимит = 0;
357+
КонецЕсли;
358+
359+
342360
Если ТипЗнч(КоличествоКоммитовДоPush) = Тип("Строка") Тогда
343361
КоличествоКоммитовДоPush = Число(КоличествоКоммитовДоPush);
344362
КонецЕсли;
@@ -374,7 +392,8 @@
374392
КонечнаяВерсия,
375393
Формат,
376394
КоличествоКоммитовДоPush,
377-
URLРепозитория);
395+
URLРепозитория,
396+
Лимит);
378397

379398
Лог.Информация("Отправка изменений на удаленный узел");
380399
КодВозврата = Распаковщик.ВыполнитьGitPush(ЛокальныйКаталогГит, URLРепозитория, ИмяВетки);
@@ -386,17 +405,35 @@
386405

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

389-
Процедура ВыполнитьЭкспортИсходников(Знач Распаковщик, Знач ПутьКХранилищу, Знач ЛокальныйКаталогГит, Знач НачальнаяВерсия = 0, Знач КонечнаяВерсия = 0, Знач Формат = Неопределено, Знач КоличествоКоммитовДоPush = 0, Знач URLРепозитория= Неопределено)
408+
Процедура ВыполнитьЭкспортИсходников(Знач Распаковщик,
409+
Знач ПутьКХранилищу,
410+
Знач ЛокальныйКаталогГит,
411+
Знач НачальнаяВерсия = 0,
412+
Знач КонечнаяВерсия = 0,
413+
Знач Формат = Неопределено,
414+
Знач КоличествоКоммитовДоPush = 0,
415+
Знач URLРепозитория= Неопределено,
416+
Знач Лимит=0)
390417

391418
ФайлБазыДанныхХранилища = ПолучитьПутьКБазеДанныхХранилища(ПутьКХранилищу);
392-
Распаковщик.СинхронизироватьХранилищеКонфигурацийСГит(ЛокальныйКаталогГит, ФайлБазыДанныхХранилища, НачальнаяВерсия, КонечнаяВерсия, Формат, КоличествоКоммитовДоPush, URLРепозитория);
419+
Распаковщик.СинхронизироватьХранилищеКонфигурацийСГит(ЛокальныйКаталогГит,
420+
ФайлБазыДанныхХранилища,
421+
НачальнаяВерсия,
422+
КонечнаяВерсия,
423+
Формат,
424+
КоличествоКоммитовДоPush,
425+
URLРепозитория,
426+
Лимит);
393427

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

396430
Процедура ВыполнитьКомандуЭкспортИсходников(Знач Параметры)
397431

398432
ЛокальныйКаталогГит = Параметры["ЛокальныйКаталогГит"];
399433
Формат = Параметры["-format"];
434+
МинВерсия = Параметры["-minversion"];
435+
МаксВерсия = Параметры["-maxversion"];
436+
Лимит = Параметры["-limit"];
400437

401438
Если ЛокальныйКаталогГит = Неопределено Тогда
402439
ЛокальныйКаталогГит = ТекущийКаталог();
@@ -405,12 +442,25 @@
405442
Если Формат = Неопределено Тогда
406443
Формат = РежимВыгрузкиФайлов.Авто;
407444
КонецЕсли;
445+
446+
Если МинВерсия = Неопределено Тогда
447+
МинВерсия = 0;
448+
КонецЕсли;
449+
450+
Если МаксВерсия = Неопределено Тогда
451+
МаксВерсия = 0;
452+
КонецЕсли;
453+
454+
Если Лимит = Неопределено Тогда
455+
Лимит = 0;
456+
КонецЕсли;
457+
408458

409459
Распаковщик = ПолучитьИНастроитьРаспаковщик(Параметры);
410460
Распаковщик.ВерсияПлатформы = Параметры["-v8version"];
411461
Распаковщик.ДоменПочтыДляGitПоУмолчанию = Параметры["-email"];
412462
Лог.Информация("Начинаю выгрузку исходников");
413-
ВыполнитьЭкспортИсходников(Распаковщик, Параметры["ПутьКХранилищу"], ЛокальныйКаталогГит, Параметры["-minversion"], Параметры["-maxversion"], Формат);
463+
ВыполнитьЭкспортИсходников(Распаковщик, Параметры["ПутьКХранилищу"], ЛокальныйКаталогГит, МинВерсия, МаксВерсия, Формат,,,Лимит);
414464
Лог.Информация("Выгрузка завершена");
415465

416466

tests/fixtures/TestStoreVer8.1CD

-596 KB
Binary file not shown.
Binary file not shown.

tests/git-sync-test.os

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141

142142
ФайлХранилища = ПутьКВременномуФайлуХранилища1С();
143143
ТаблицаИсторииХранилища = Распаковщик.ПрочитатьТаблицуИсторииХранилища(ФайлХранилища);
144-
Утверждения.ПроверитьРавенство(ТаблицаИсторииХранилища.Количество(), 3, "таблицаИсторииХранилища.Количество()");
144+
Утверждения.ПроверитьРавенство(ТаблицаИсторииХранилища.Количество(), 8, "таблицаИсторииХранилища.Количество()");
145145
Для Каждого СтрокаВерсии Из ТаблицаИсторииХранилища Цикл
146146
Лог.Отладка("" + СтрокаВерсии.Дата + ": " + СтрокаВерсии.НомерВерсии + ": " + СтрокаВерсии.Комментарий);
147147
КонецЦикла;
@@ -203,7 +203,7 @@
203203

204204
ТаблицаИсторииХранилища = Распаковщик.ПрочитатьИзХранилищаИсториюКоммитовСАвторами(ПутьКФайлуХранилища1С);
205205

206-
Утверждения.ПроверитьРавенство(ТаблицаИсторииХранилища.Количество(), 3, "ТаблицаИсторииХранилища.Количество()");
206+
Утверждения.ПроверитьРавенство(ТаблицаИсторииХранилища.Количество(), 8, "ТаблицаИсторииХранилища.Количество()");
207207

208208
Для Каждого строка Из ТаблицаИсторииХранилища Цикл
209209
Если ПустаяСтрока(строка.Автор) Тогда
@@ -368,7 +368,7 @@
368368
КоличествоКоммитов = КоличествоКоммитов + 1;
369369
КонецЦикла;
370370
ЛогГит.Закрыть();
371-
Утверждения.ПроверитьРавенство(КоличествоКоммитов, 3, "Количество коммитов в git-хранилище");
371+
Утверждения.ПроверитьРавенство(КоличествоКоммитов, 8, "Количество коммитов в git-хранилище");
372372

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

0 commit comments

Comments
 (0)