2016-08-29 8 views
0

bisect를 사용하여 업스트림 커널 코드에서 S4 문제를 해결하는 올바른 커밋을 찾습니다.upsteam 리눅스 커널에서 좋은 커밋을 찾기 위해 bisect를하는 방법은 무엇입니까?

git bisect start 
git bisect bad v4.8-rc1 
git bisect good v4.7 

는 결과를 마무리하는 13 개 조치를 취할 것입니다 :이 같은 수행 할 때 는하지만 혼란 문제를 만난다.

하지만 bisect가 v4.7 태그보다 오래된 커밋을 선택한다는 것을 알았지?

제 생각에 bisect는 타임 라인에서 v4.7 태그와 v4.8-rc1 태그 사이의 커밋을 선택해야합니다.

+0

"보다 오래되었습니다." "v4.7 태그 및/또는 대상 커밋의 작성일보다 오래된 저자 날짜가있는 것입니까?" – torek

답변

0

제 의견으로는 bisect는 타임 라인에서 v4.7 태그와 v4.8-rc1 태그 사이의 커밋을 선택해야합니다.

정확하게 이것은 bisect와는 다릅니다. bisect는 v4.8-rc1 태그에 포함되어 있고 v4.7 태그에는 포함되지 않은 모든 커밋을 선택합니다. 예를 들어 v4.6에서 분기가 작성되고 v4.7이 작성되기 전에 변경 사항이 커미트됩니다. 그러나 분기는 v4.7로 병합되지 않습니다. 특히 커널 개발에서 병합되기까지 많은 시간이 걸릴 수 있습니다. 그 커밋의 날짜는 v4.7 이전이지만, 변경 사항은 v4.7에 포함되지 않습니다.

bisect는 문제를 일으킨 커밋을 찾는 데 사용되므로 시간에 기반하지 않고이 방식으로 작동하는 것이 중요합니다. 이것은 "좋은"버전 이전에 작성되었지만 아직 포함되지 않은 커밋에서도 발생할 수 있습니다.

커밋이있는 경우 git tag --contains <commit-hash>을 사용하여 포함 된 태그를 확인할 수 있습니다. 아마 v4.7이라는 태그는 그 목록에 포함되지 않을 것이고, 이것이 그 커밋이 git bisect에 의해 선택되는 이유에 대한 설명 일 것입니다.