ππ ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ Π±Π°Π³ Π² 2088 ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git bisect
ΠΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ: ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΊΠ΅ΠΉΡ, ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΡΡΠ΅Π΄ΠΈ ΡΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ΄Π°, Π·Π°ΡΡΠ°ΡΠΈΠ² ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ΅ΡΠΎΠ΄ git bisect
β ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²ΡΠ·Π²Π°Π²ΡΠ΅Π³ΠΎ Π±Π°Π³ Π² ΠΊΠΎΠ΄Π΅: Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΡΠ΄Π°Π»ΠΎΡΡ Π±ΡΡΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π² Π²ΡΠ΅Π³ΠΎ 11 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΡ
2088.
ΠΠ°Π΄Π°ΡΠ°: Π½Π°ΠΉΡΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·Π²Π°Π» ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
- ΠΡΠΈΠ±ΠΊΠ° Π±ΡΠ»Π° Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π° 21 ΠΎΠΊΡΡΠ±ΡΡ. ΠΠ½Π° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π²Π΅ΡΠΊΠ΅
main
. - ΠΡΠΈΠ±ΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ
release-5.7.0
. - ΠΠ΅ΡΠΊΡ
release-5.7.0
ΡΠΎΠ·Π΄Π°Π»ΠΈ 2 ΠΌΠ΅ΡΡΡΠ° Π½Π°Π·Π°Π΄, Π° Ρ ΡΠ΅Ρ ΠΏΠΎΡ Π² Π²Π΅ΡΠΊΠ΅ main Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ β Π±Π°Π³ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ.
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΎΡΠΈΠ±ΠΊΡ
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠ°, Π½ΡΠΆΠ½ΠΎ:
- ΠΠ°ΠΉΡΠΈ ΡΠΎΡΠΊΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π³Π΄Π΅ ΠΊΠΎΠ΄ Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π» ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ
git bisect
, ΡΡΠΎΠ±Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΏΠΎΠΈΡΠΊ Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ.
Π¨Π°Π³ 1: ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ Β«Ρ ΠΎΡΠΎΡΠΈΠΉΒ» ΠΈ Β«ΠΏΠ»ΠΎΡ ΠΎΠΉΒ» ΠΊΠΎΠΌΠΌΠΈΡΡ
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Π²Π΅ΡΠΊΠ΅ release-5.7.0
ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅Ρ, Π·Π½Π°ΡΠΈΡ, Π±Π°Π³ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π² Π²Π΅ΡΠΊΠ΅ main
ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° Π²Π΅ΡΠΊΠ° release-5.7.0
. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ° (Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°:
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°ΠΉΠ΄Π΅Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ° Π΄Π²ΡΡ
Π²Π΅ΡΠΎΠΊ, ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Π΅ΡΠΊΠ° release-5.7.0
Π±ΡΠ»Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π° ΠΈΠ· Π²Π΅ΡΠΊΠΈ main
. ΠΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡ (Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ commit0001
Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ) Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ Β«Ρ
ΠΎΡΠΎΡΠΈΠΌΒ» β Π² Π½Π΅ΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ.
ΠΡΠΈΠ±ΠΊΠ° Π±ΡΠ»Π° Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π° 21 ΠΎΠΊΡΡΠ±ΡΡ. ΠΠ½Π°ΡΠΈΡ, Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±Π°Π³, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΉ Π΄ΠΎ ΡΡΠΎΠΉ Π΄Π°ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°:
ΠΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ Β«ΠΏΠ»ΠΎΡ
ΠΈΠΌΒ» β Π±Π°Π³ Π² Π½Π΅ΠΌ ΡΠΆΠ΅ Π΅ΡΡΡ. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ commit9999
.
Π¨Π°Π³ 2: ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Β«Ρ ΠΎΡΠΎΡΠΈΠΌΒ» ΠΈ Β«ΠΏΠ»ΠΎΡ ΠΈΠΌΒ»
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΡΠΎΡΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ 2088 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ β ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²ΡΡΡΠ½ΡΡ.
Π¨Π°Π³ 3: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ git bisect
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ git bisect
ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π±ΡΡΡΡΠΎ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·Π²Π°Π» ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°. ΠΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΡΠ΅Ρ
2088 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²ΡΡΡΠ½ΡΡ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΡΠ΅Π³ΠΎ 10-11 ΡΠ°Π³ΠΎΠ².
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ°, ΡΠΊΠ°Π·Π°Π² Β«Ρ ΠΎΡΠΎΡΠΈΠΉΒ» ΠΈ Β«ΠΏΠ»ΠΎΡ ΠΎΠΉΒ» ΠΊΠΎΠΌΠΌΠΈΡΡ:
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Git Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ Β«Ρ ΠΎΡΠΎΡΠΈΠΌΒ» ΠΈ Β«ΠΏΠ»ΠΎΡ ΠΈΠΌΒ» . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ:
- ΠΡΠ»ΠΈ Π±Π°Π³ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ, Π²Π²ΠΎΠ΄ΠΈΡΠ΅
git bisect bad
- ΠΡΠ»ΠΈ Π±Π°Π³Π° Π½Π΅Ρ β
git bisect good
Git ΡΠ½ΠΎΠ²Π° Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΎΡΡΠ°Π²ΡΠ΅Π³ΠΎΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΡΠΊΠ°Π·ΡΠ²Π°Ρ good
ΠΈΠ»ΠΈ bad
. ΠΡΠΈ ΡΡΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Π΅ΠΌΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π² Π΄Π²Π° ΡΠ°Π·Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅. ΠΠΎΡΠ»Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°Π³ΠΎΠ² (Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 10-11 Π΄Π»Ρ 2088 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²) git bisect
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π°ΡΠ΅Π» ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π±Π°Π³:
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ΅ΡΠΎΠ΄ git bisect
ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
Ρ ΡΠ°ΡΡΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ β ΠΎΠ½ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠΎΠ·ΡΠΌΠΈΡΠ΅ Π½Π° Π·Π°ΠΌΠ΅ΡΠΊΡ!
Π ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Git Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π°? ΠΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ !