fix: СинхронизацияОбъектовМетаданныхИФайлов: Не анализировать каталог объекта метаданных если он пустой (без файлов)#59
Conversation
…ог объекта метаданных если он пустой (без файлов)
WalkthroughДобавлены проверка равенства содержимого файлов и новый хелпер для обнаружения файлов в каталоге; тесты переключены на работу из корня репозитория (включая флаг Changes
Sequence Diagram(s)(пропущено) Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@src/Модули/ФайловыеОперации.os`:
- Around line 244-264: В функции ЕстьФайлыВКаталоге исправьте опечатку имени
переменной: переименуйте ИскатьВПодкаталагах в ИскатьВПодкаталогах, а также
уберите ненужное накопление в МассивФайловКаталога — вместо создания массива и
подсчёта верните Истина сразу при обнаружении первого элемента из МассивФайлов
(элемент Файл, для которого Не Файл.ЭтоКаталог()), и верните Ложь если цикл
завершился без нахождения файлов; оставьте вызов
НайтиФайлы(ФайлКаталога.ПолноеИмя, "*", ИскатьВПодкаталогах) как есть.
🧹 Nitpick comments (1)
src/СценарииОбработки/СинхронизацияОбъектовМетаданныхИФайлов.os (1)
225-233: Проверьте логику: условиеНЕ ПустойКаталогможет быть избыточным.После проверки
ЕстьФайлыВКаталоге(Каталог)возвращающейИстина(есть файлы рекурсивно), условиеНЕ ПустойКаталог(Каталог.ПолноеИмя)всегда будет истинным, так как каталог содержит файлы.Возможные варианты:
- Если поведение верное — упростить код, убрав проверку
ПустойКаталог:♻️ Упрощённый вариант
Если МассивОбъектов.Найти(Каталог.ИмяБезРасширения) = Неопределено Тогда Если Не ФайловыеОперации.ЕстьФайлыВКаталоге(Каталог) Тогда Продолжить; КонецЕсли; - Если НЕ ПустойКаталог(Каталог.ПолноеИмя) Тогда - МассивОшибок.Добавить(СтрШаблон("Каталог не является каталогом объекта %1", Каталог.ПолноеИмя)); - КонецЕсли; + МассивОшибок.Добавить(СтрШаблон("Каталог не является каталогом объекта %1", Каталог.ПолноеИмя)); Иначе
- Если
ПустойКаталогучитывает специфические случаи (например, каталог с только вложенными пустыми папками) — оставить как есть.
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
features/step_definitions/precommitonec_feature.osfeatures/ВыполнениеПрекоммита.featurefeatures/ФайловыеОперации.featuresrc/Модули/ФайловыеОперации.ossrc/СценарииОбработки/СинхронизацияОбъектовМетаданныхИФайлов.os
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-11-03T09:51:07.133Z
Learnt from: Kyrales
Repo: bia-technologies/precommit4onec PR: 48
File: src/СценарииОбработки/СинхронизацияОбъектовМетаданныхИФайлов.os:0-0
Timestamp: 2025-11-03T09:51:07.133Z
Learning: В функции СинхронизироватьМетаданныеИФайлыПВХ в файле src/СценарииОбработки/СинхронизацияОбъектовМетаданныхИФайлов.os массив МассивОшибокПриПоискеФайловОбъектов намеренно игнорируется, так как эти ошибки актуальны только для функции СинхронизироватьМетаданныеИФайлы(), но не для обработки планов видов характеристик (ПВХ).
Applied to files:
src/СценарииОбработки/СинхронизацияОбъектовМетаданныхИФайлов.os
🔇 Additional comments (6)
features/ФайловыеОперации.feature (1)
23-23: Изменение логики теста выглядит корректно.Проверка на идентичность содержимого файлов после коммита соответствует цели теста — убедиться, что кодировка и содержимое файла не изменяются в процессе прекоммита.
features/step_definitions/precommitonec_feature.os (2)
151-162: Реализация корректна и соответствует существующему паттерну.Новая процедура
СодержимоеФайлаИФайлаОдинаковоеявляется симметричным аналогом существующейСодержимоеФайлаИФайлаРазноеи корректно используетОжидаем.Что(...).Равно(...)для проверки идентичности содержимого файлов.
23-23: LGTM!Шаг корректно добавлен в список доступных шагов.
features/ВыполнениеПрекоммита.feature (3)
34-34: Добавление параметра-source-dir .корректно настраивает корневой каталог.Изменение согласуется с обновлёнными путями проверки файлов в сценариях ниже.
43-64: Пути проверки файлов обновлены консистентно.Все проверки корректно изменены с
srcна.(корень репозитория), что соответствует новому параметру-source-dir .в команде установки.
125-128: LGTM!Пути в этом сценарии также согласованы с изменениями в корневом каталоге.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
…ым каталогом, который должен игнорироваться
fix: В СинхронизацияОбъектовМетаданныхИФайлов: Не анализировать каталог объекта метаданных если он пустой (без файлов).
Плюс скорректированы тесты BDD
Summary by CodeRabbit
Улучшения
Новые функции
Тесты
✏️ Tip: You can customize this high-level summary in your review settings.