После нескольких недель работы с этими драгоценными камнями, я думаю, я понял это.Я оставлю здесь несколько советов для тех, кто сталкивается с подобными проблемами.
1.Поместите свои изменения перед выполнением overcommit --run
Как говорят comment и docs , команда --run
не проверяет неотслеживаемые файлы.
2.Добавьте параметр gemfile
к .overcommit.yml
Одна проблема, с которой я столкнулся, заключалась в том, что overcommit
не смог прочитать мой config/rails_best_practices.yml
(он не должен был проверять unused methods
вВо-первых, поскольку эта проверка была отключена в файле конфигурации).
Кажется, что когда я пытался git commit
, overcommit
использовал гемы, установленные в моей системе (не в Gemfile
), и в результате почему-то не удается прочитать мой файл конфигурации.Поэтому я добавил опцию gemfile
, как рекомендовано в документации, и убедился, что overcommit
использует версию Gemfile
/ bundler
.С тех пор я не получил предметную ошибку.Как написано в документах:
Если вы используете Bundler для управления вашими гемами-зависимостями Ruby, вы, вероятно, захотите использовать опцию gemfile, чтобы контролировать, какие версии гемов доступны во время ваших перехватов.
Мой .overcommit.yml
файл для справки:
gemfile: Gemfile
PreCommit:
RuboCop:
enabled: true
on_warn: fail
RailsBestPractices:
enabled: true
on_warn: fail
command: ['bundle', 'exec', 'rails_best_practices', '-c', 'config/rails_best_practices.yml']
В качестве примечания - я не пробовал это, но, видимо, вы также можете создать отдельныйGemfile
только для overcommit
целей, если вы чувствуете, что загрузка оригинала Gemfile
замедляет выполнение перехвата ( docs ).