Подтвердить что ты не робот

Как я могу выполнить прогон git bisect с использованием путей к файлу?

Я использую git bisect, чтобы найти отказ, вызывающий фиксацию. Тем не менее, многие коммиты в диапазоне определенно неактуальны (потому что они фиксируют документацию или модульные тесты). Я хотел бы сделать git bisect автоматически пропускать фиксации, которые влияют на файлы в определенных каталогах. Возможно ли это как-то?

4b9b3361

Ответ 1

У вас есть несколько вариантов:

  • Игнорирование определенных коммитов

    git bisect содержит функциональность пропущенных коммитов. Вы можете указать коммиты, теги, диапазоны, которые вы не хотите тестировать с помощью

    git bisect skip 0dae5f ff049ab ...
    

    Просто сделайте это перед git bisect run, и он должен пропустить то, что вы указали.

  • Указание папок со сломанными источниками

    Вы также можете сократить тесты commits bisect, указав, в каких папках он должен искать проблемы. Это делается в начале процесса bisect, дополняя дополнительные аргументы git bisect start (цитата из стандартного руководства):

    git bisect start -- arch/i386 include/asm-i386
    

    Bisect рассмотрит только фиксации, которые касаются указанных папок.


Если вы хотите автоматически собирать фиксации, которые касаются определенных файлов или папок, вы можете использовать git log для этого. Например, следующая команда даст вам имена фиксаций, которые изменяют файлы в определенных папках:

git log --pretty=format:%H  tests/ docs/

И вы можете предоставить результат git bisect skip с использованием возможностей оболочки:

git bisect skip `git log --pretty=format:%H  tests/ docs/`