2012-03-14 5 views
4

git bisect работает, подсчитывая количество коммитов между «хорошим» и «плохим» и проверяя изменение в середине. К сожалению, это не сработает для репо, потому что один проект (например, каркас) может иметь много изменений на раннем этапе, а другой проект (например, ядро) может иметь кучу более поздних изменений, поэтому «repo forall -c» git bisect .. . «Может быть, один проект проверен в состоянии намного старше другого.repo 'bisect' для отладки Android?

Мой вопрос заключается в том, есть ли способ получить мерзавец-разрез`ать выбрать свою фиксацию на основе даты коммит, поэтому, когда сделано в различных проектах, мы, скорее всего, останутся в таком состоянии, что компилируется ,

ответ

5

git bisect не предназначен для одновременного использования в нескольких хранилищах.

Возможно, вам лучше написать собственный скрипт, который реализует базовый алгоритм деления по датам и использует git rev-list -n1 --before <DATEVALUE> в каждом репозитории для получения git-фиксации для проверки, соответствующей любой дате, когда ваш скрипт в настоящее время делит пополам.

Вот пример сценария бисекции, который я написал для другой цели. Обратите внимание, что это не специально разработан для вашей ситуации; это всего лишь пример реализации бисекции:

https://gist.github.com/2040290

+0

Hm, который выглядит как работоспособное решение. Для этой конкретной ошибки это не стоит моего времени, но я думаю, что я должен работать над этим во время простоя. Спасибо :) – Grazfather

+0

Еще одна вещь, которую следует учитывать, состоит в том, что каждый отдельный компонент, вероятно, обновлялся независимо от слияния с общим распределением (т. Е. Изменения, сделанные в тот же день, возможно, никогда не были построены вместе). Я подозреваю, что вам будет лучше отслеживать недостающий компонент и просто сосредоточиться на делении пополам. – stsquad

Смежные вопросы