Skip to content

limit: --maxversion не ограничивает выгрузку, если одновременно задан -l/--limit #130

Description

@igostv

Описание

При одновременном использовании -l/--limit и --maxversion плагин limit берёт максимум из двух границ вместо минимума. В результате --maxversion не ограничивает выгрузку — лимит её расширяет.

Воспроизведение

gitsync 3.8.0, gitsync-plugins 1.6.1, платформа 8.3.27.1989.
Синхронизировано 1974, последняя версия в хранилище 1985.

gitsync sync -l 10 --maxversion 1982 --error-comment --push --push-tags <storage> ./src/cf

Лог:

ИНФОРМАЦИЯ - Установлен лимит <10> для количества версий, при выгрузке
ИНФОРМАЦИЯ - Установлена конечная версия <1982> при выгрузке версий
...
ИНФОРМАЦИЯ - Получаем исходники для версии 1983
КРИТИЧНАЯОШИБКА - Версия <1984> от автора <...>: комментарий не задан

Ожидалось: выгрузка останавливается на 1982.
Фактически: дошла до 1983 и упала на проверке версии 1984.

Причина

src/Классы/limit.os:

Если КонечнаяВерсия = 0 Тогда
    КонечнаяВерсия = НомерВерсииСогласноЛимита;
Иначе
    КонечнаяВерсия = ?(КонечнаяВерсия >= НомерВерсииСогласноЛимита, КонечнаяВерсия, НомерВерсииСогласноЛимита);
КонецЕсли

При лимите 10 от версии 1974 НомерВерсииСогласноЛимита = 1984; условие 1982 >= 1984 ложно, поэтому конечной версией становится 1984.

Ожидаемое поведение

Оба параметра — ограничения сверху, поэтому естественно брать минимум: Мин(КонечнаяВерсия, НомерВерсииСогласноЛимита).

Сейчас поведение неочевидно: в справке оба параметра описаны независимо, и в логе честно печатается «Установлена конечная версия <1982>», хотя фактически применяется 1984.

Обходной путь

Не использовать -l вместе с --maxversion.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions