Я знаю, что git bisect по своей конструкции ориентирован на ветви, так что если между хорошим коммитом G и плохим коммитом B вы слились в ветви, ему нужно учитывать и эти изменения, поскольку ошибка может содержаться в ветви.
В моем случае у меня есть зависимость в виде боковой ветви, и я время от времени вливаю изменения в свой основной проект. Зависимость можно рассматривать как библиотеку, которая имеет другой способ запуска, другую систему сборки и т.д., чем мой основной проект, но я все еще хочу получать от нее последние изменения путем слияния с основной веткой.
Проблема в том, что при биссектрисе в этом сценарии вы попадаете на некомпилируемые коммиты в коммитах из зависимой ветки.
На самом деле я бы просто хотел рассматривать каждое слияние ветвей как один коммит при выполнении биссекции.
Обходной путь, который я нашёл до сих пор, это составление списка допустимых коммитов G...B с помощью git log --first-parent, а затем при биссекции делать git bisect skip, если текущего коммита нет в этом списке. Однако это занимает много времени (много файлов нужно проверить/изменить для каждого пропуска).
Итак, вопрос: есть ли способ сделать --first-parent в git bisect или предоставить список коммитов, которые я считаю действительными, чтобы избежать проверки ветвей, которые, как я уже знаю, не компилируемы? Как нам проверить только коммиты, отмеченные o на диаграмме?
G---o---o---o---o---o---o---B main project branch / / / x---x---x---x---x dependency \ / x' dependency project taskbranch
Edit: добавлена диаграмма для ясности