Skip to content

Commit 735ddae

Browse files
committed
Подправил модуль, добавил документацию
1 parent fceb54e commit 735ddae

File tree

3 files changed

+36
-12
lines changed

3 files changed

+36
-12
lines changed

readme.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,9 @@
157157
-verbose - <on|off>
158158
-branch - <имя ветки git>
159159
-format - <hierarchical|plain>
160+
-minversion - Число, номер минимальной версии для выгрузки
161+
-maxversion - Число, номер максимальной версии для выгрузки
162+
-limit - Число, выгрузить неболее limit версий от текущей выгруженной
160163
161164
Возможные команды:
162165
clone - Клонирует существующий репозиторий и создает служебные файлы
@@ -176,3 +179,21 @@
176179
gitsync all <путь к xml-файлу конфигурации>
177180

178181
Подробнее о параметрах команды `all` можно прочитать, запустив `gitsync help all`
182+
183+
# Примеры испльзования количественных min/max version и limit
184+
185+
Выгрузить все версии начиная с 5
186+
187+
gitsync export store -minversion 5
188+
189+
Выгрузить версии с 5 по 10
190+
191+
gitsync export store -minversion 5 -maxversion 10
192+
193+
Выгрузить не более 2 версий от последней выгруженной. Последняя выгруженная 4, выгружаем 2 следующие: 5 и 6.
194+
195+
gitsync export store -limit 2
196+
197+
Выгрузить 2 версии от последней выгруженной, но не более 5-ой версии. Удобно когда выгрузка идет небольшими партиями, при заранее известном максимальном номере версии.
198+
199+
gitsync export store -maxversion 5 -limit 2

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

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -881,22 +881,19 @@
881881

882882
Лог.Информация("Номер синхронизированной версии: " + ТекущаяВерсия);
883883
СледующаяВерсия = ТекущаяВерсия + 1;
884-
885-
Если Лимит <> 0 Тогда
886-
Если КонечнаяВерсия = 0 Тогда
887-
КонечнаяВерсия = ТекущаяВерсия + Лимит;
888-
КонецЕсли;
884+
885+
Если НачальнаяВерсия > 0 Тогда
886+
СледующаяВерсия = НачальнаяВерсия;
889887
КонецЕсли;
890888

891-
Если НачальнаяВерсия <> 0 Тогда
892-
Если Лимит <> 0 Тогда
893-
СледующаяВерсия = Число(НачальнаяВерсия);
894-
КонечнаяВерсияИзНачальной = (СледующаяВерсия + Лимит);
889+
Если Лимит > 0 Тогда
895890

896-
КонечнаяВерсия = ?(КонечнаяВерсия > КонечнаяВерсияИзНачальной, КонечнаяВерсия,КонечнаяВерсияИзНачальной);
891+
Если КонечнаяВерсия = 0 Тогда
892+
КонечнаяВерсия = ТекущаяВерсия + Лимит;
897893
Иначе
898-
СледующаяВерсия = Макс(СледующаяВерсия, Число(НачальнаяВерсия));
894+
КонечнаяВерсия = ?(КонечнаяВерсия >= (ТекущаяВерсия + Лимит), КонечнаяВерсия, (ТекущаяВерсия + Лимит));
899895
КонецЕсли;
896+
900897
КонецЕсли;
901898

902899
Если Формат = Неопределено Тогда

tests/test-export_with_min_max_versions.os

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
Распаковщик = Новый МенеджерСинхронизации();
1616
Лог = Логирование.ПолучитьЛог("oscript.app.gitsync");
17-
Лог.УстановитьУровень(УровниЛога.Отладка);
17+
Лог.УстановитьУровень(УровниЛога.Информация);
1818

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

@@ -28,6 +28,7 @@
2828
ВсеТесты.Добавить("Тест_ДолженЭкспортироватьМаксимумВерсию5");
2929
ВсеТесты.Добавить("Тест_ДолженЭкспортироватьВерсииС3По7");
3030
ВсеТесты.Добавить("Тест_ДолженЭкспортироватьНеБолее2");
31+
ВсеТесты.Добавить("Тест_ДолженЭкспортироватьПо2НоНеВыше5");
3132

3233
Возврат ВсеТесты;
3334

@@ -60,6 +61,11 @@
6061
Утверждения.ПроверитьРавенство(КоличествоКоммитов, 2, "Количество коммитов в git-хранилище");
6162
КонецПроцедуры
6263

64+
Процедура Тест_ДолженЭкспортироватьПо2НоНеВыше5() Экспорт
65+
КоличествоКоммитов = ВыполнитьСинхронизацию(0, 5, 2);
66+
Утверждения.ПроверитьРавенство(КоличествоКоммитов, 5, "Количество коммитов в git-хранилище");
67+
КонецПроцедуры
68+
6369
//////////////////////////////////////////////////////////////////////////////
6470

6571
Функция ВыполнитьСинхронизацию(МинВерсия=0, МаксВерсия=0, Лимит=0)

0 commit comments

Comments
 (0)