ΠΠ±ΡΠ°Π²Π΅Π½ΠΎ Π΅ ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ mergiraf 0.4, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈ Π΄ΡΠ°ΡΠ²Π΅Ρ Π·Π° Git ΡΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΡΡΠΈΠ½Π°ΡΠΎΡΠ½ΠΎ ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅. ΠΠ΅ΡΠ³ΠΈΡΠ°Ρ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠ°Π·ΡΠ΅ΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ°Π·Π½ΠΈ Π²ΠΈΠ΄ΠΎΠ²ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΡΠΎ ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·ΠΈΡΠΈ ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ. ΠΠΎΠΆΠ½ΠΎ Π΅ ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ° mergiraf ΠΎΠ΄Π΄Π΅Π»Π½ΠΎ Π·Π° Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ ΡΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈΡΠ΅ ΡΡΠΎ ΡΠ΅ ΡΠ°Π²ΡΠ²Π°Π°Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΠΎΡ Git ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠΎΡ ΡΠΎ ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅ Π²ΠΎ Git Π·Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅, Π²ΡΠ°ΡΠ°ΡΠ΅, ΠΏΡΠ΅Π±Π°Π·ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΈΠ·Π±ΠΎΡ Π½Π° ΡΡΠ΅ΡΠΈ. ΠΠΎΠ΄ΠΎΡ ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° GPLv3. ΠΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π΄ΠΎΠ΄Π°Π²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΡΠ°Π·ΠΈΡΠΈΡΠ΅ Python, TOML, Scala ΠΈ Typescript, ΠΊΠ°ΠΊΠΎ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅.
ΠΠΎΠ΄ΠΎΠ»Ρ Π΅ Π΄Π΅ΡΠ°Π»Π΅Π½ ΠΎΠΏΠΈΡ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΌΠ΅ΡΠ³ΠΈΡΠ°Ρ:
Π‘ΠΎΡΡΠ²Π΅ΡΠΎΡ Π΅ ΠΎΠ΄Π»ΠΈΡΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ. Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈΠΌΠ°Π°Ρ Π΅Π΄Π½ΠΎ Π·Π°Π΅Π΄Π½ΠΈΡΠΊΠΎ - ΡΠΈΠ΅ ΡΠ΅ ΠΠΠΠΠΠΠΠ‘ΠΠ - ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠ΅ΠΊΡΠ²Π°ΡΠ΅ ΡΠ»ΠΎΠΆΠ΅Π½ΠΎΡΠΎ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅ ΡΡΠΎ ΡΠ°ΠΊΠ°ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ ΡΠ»ΡΡΠ°ΡΠ½ΠΎ. ΠΠ°ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ°, ΠΎΠ²ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π°Ρ ΡΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΡΠ΅ΠΊΠΎΡ ΠΏΠΎ ΡΠ΅ΠΊΠΎΡ, ΠΈ ΡΠ΅ΠΊΠΎΡΠ° ΠΌΡΡΠ°ΡΠΈΡΠ° Π΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ ΡΠ΅ΡΡΠΈΡΠ°Π½Π° Π²ΠΎ ΡΠ΅ΠΊΠΎΡΠ° ΡΠ°Π·Π°. ΠΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΎΠ²Π°, ΠΏΠΎΡΡΠ΅Π±Π½Π° Π΅ Π΄ΠΎΠ±ΡΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈ Π°Π»Π°ΡΠΊΠΈ. ΠΠ²ΠΎΠ»ΡΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ·ΡΠ΅Π»ΠΈΠ·ΠΈΡΠ° ΠΊΠ°ΠΊΠΎ Π½Π°ΡΠΎΡΠ΅Π½ΠΎ Π΄ΡΠ²ΠΎ, ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΠΊΠΎΡΠ΅Π½ΠΎΡ Π΅ ΠΏΡΠ°Π·Π΅Π½ ΡΠ΅Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ΅ΠΊΠΎΡ ΡΠ°Π·ΠΎΠ» - ΠΎΡΠ²Π΅Π½ ΠΊΠΎΡΠ΅Π½ΠΎΡ - Π΅ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π° Π½Π° ΠΌΡΡΠ°ΡΠΈΡΠ° Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π».
ΠΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅, ΡΠ΅ΠΊΠΎΡ ΡΠ°Π·ΠΎΠ» ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π° βΠ²Π΅ΡΠ·ΠΈΡΠ°β, ΡΡΠΎ ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ ΡΠ΅Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π°Π½ΡΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘Π΅ΠΊΠΎΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π° Π½Π° ΠΎΠ²Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅ ΡΠΌΠ΅ΡΠ° Π·Π° ΠΌΡΡΠ°ΡΠΈΡΠ°, ΡΠΎΡΠΌΠΈΡΠ°ΡΡΠΈ ΡΠ°Π± Π²ΠΎ Π½Π°ΡΠΈΠΎΡ Π½Π°ΡΠΎΡΠ΅Π½ Π°ΡΠΈΠΊΠ»ΠΈΡΠ΅Π½ Π³ΡΠ°ΡΠΈΠΊ. ΠΠ²ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ ΠΈΠ½Ρ Π΅ΡΠ΅Π½ΡΠ½ΠΎ Π°ΠΏΡΡΡΠ°ΠΊΡΠ½ΠΈ; ΡΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π΅ Π³ΠΈ ΠΎΠ΄ΡΠ°Π·ΡΠ²Π°Π°Ρ Π½Π°ΡΠΈΠ½ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π°Ρ ΡΠΈΠ·ΠΈΡΠΊΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΡΠΊΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°Π°Ρ ΠΊΠ°ΠΊΠΎ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡΠ΅ Π°Π³Π΅Π½ΡΠΈ ΡΠ° ΠΏΠ΅ΡΡΠΈΠΏΠΈΡΠ°Π°Ρ ΠΊΠΎΡΠΈΡΠ½ΠΎΡΡΠ° Π½Π° ΡΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠ° Π΄Π° Π³ΠΈ ΠΏΡΠ΅Π²Π΅Π΄Π΅ΡΠ΅ ΠΈΠ΄Π΅ΠΈΡΠ΅ Π²ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΠΎ ΡΠ΅Π°Π»Π½ΠΈΠΎΡ ΡΠ²Π΅Ρ, ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΈ Π·Π°ΡΡΠΊΠ°ΡΠ΅ ΡΠ°ΠΊΠ°Π²ΠΈΡΠ΅ ΠΈ Π΄Π° ΡΠ΅ Π½ΡΡΠ½Π΅ΡΠ΅ Π²ΠΎ *Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ* Π΄Π΅ΡΠ°Π»ΠΈ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΈΠ·ΡΠ°Π·Π°Ρ ΠΈ Π΄Π° ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠΎΡΠ½ΠΎ ΠΊΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π°Ρ ΡΠ°Π±ΠΎΡΠΈΡΠ΅. ΠΠΎ ΡΠ°Π·Π²ΠΎΡΠΎΡ Π½Π° ΡΠΎΡΡΠ²Π΅Ρ, ΠΎΠ²ΠΈΠ΅ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΏΡΠ΅ΡΡΡΠ°Π²Π΅Π½ΠΈ ΡΠΎ ΠΈΠ·Π²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄.
ΠΠ° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ Π΄Π° Π³ΠΎ Π΄ΠΎΠ²Π΅Π΄Π°Ρ Π½ΠΈΠ²Π½ΠΈΠΎΡ ΠΈΠ·Π²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π²ΠΎ ΡΠΎΡΡΠΎΡΠ±Π° ΡΡΠΎ Π³ΠΎ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° ΠΏΠΎΡΠ°ΠΊΡΠ²Π°Π½ΠΎΡΠΎ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅, ΠΈ Π΄Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠ°Π°Ρ ΠΊΠ°ΠΊΠΎ Π΄ΠΎΡΠ»Π΅ ΡΠ°ΠΌΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΠ° ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π°Π°Ρ Π½ΠΈΠ²Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π²ΠΎ ΡΠΌΠΈΡΠ»Π° Π½Π° ΡΠ½ΠΈΠΌΠΊΠΈ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. Π‘Π½ΠΈΠΌΠΊΠ°ΡΠ° ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π° ΡΠΎΡΡΠΎΡΠ±Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΎΡ ΡΠΎ ΡΠΈΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ, Π΄ΠΎΠ΄Π΅ΠΊΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΎΡ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π° ΠΏΡΠ΅ΠΌΠΈΠ½ ΠΏΠΎΠΌΠ΅ΡΡ ΡΠ½ΠΈΠΌΠΊΠΈΡΠ΅. ΠΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΎ, ΡΠ½ΠΈΠΌΠΊΠΈΡΠ΅ ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Π°Ρ ΠΎΠ΄ Π΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π° Π½ΠΈΠ²Π½ΠΈΡΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΎΠ²ΠΈΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ ΡΠΊΠΎΡΠΎ ΡΠ΅ΠΊΠΎΠ³Π°Ρ ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ Π΄Π΅ΠΊΠ° Π³ΠΈ ΠΏΡΠ°Π²Π°Ρ ΡΠ΅ΡΠΎΠ²ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΡΠΎ Π³ΠΈ ΡΠΎΠ·Π΄Π°Π»Π΅, ΡΠ°ΠΊΠ° ΡΡΠΎ ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π½Π°ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ½ΠΎ.
ΠΠΎΠ½Π΅ΠΊΠΎΠ³Π°Ρ ΠΈΠΌΠ° ΡΠ½ΠΈΠΌΠΊΠΈ Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΡΠ°Π½Π·ΠΈΡΠΈΠΈ - ΠΎΠ±Π²ΡΠ·Π½ΠΈΡΠΈ Π·Π° ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅. Π’Π΅ΡΠΊΠΎ Π΅ Π΄Π° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ Π½ΠΈΠ², ΠΏΠ° ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½ΡΠ²Π°Π°Ρ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ Git, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°Π°Ρ ΠΌΠ½ΠΎΠ³Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΡΠ°Π·Π²ΠΎΡΠ½ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΡΠ΅ΠΊΠΎΠ²ΠΈ. Π’ΠΈΠ΅ ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°Π°Ρ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π°Ρ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΊΠ°ΠΊΠΎ Π½Π°ΡΠΎΡΠ΅Π½ΠΈ Π°ΡΠΈΠΊΠ»ΠΈΡΠ½ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΎΠ½ΠΈ, Π΄Π° Π³ΠΈ ΠΏΡΠΈΠ±Π΅Π»Π΅ΠΆΠ°Ρ ΡΠΎ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ ΠΈ Π΄Π° Π³ΠΈ ΠΏΡΠ΅ΡΠ΅Π΄ΡΠ²Π°Π°Ρ ΠΏΠΎ ΠΏΠΎΡΡΠ΅Π±Π°.
ΠΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠΊΠΈ Π·Π½Π°ΡΠ°ΡΠ½Π° ΠΈΡΡΠΎΡΠΈΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ, ΡΡΠΎ Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠ°ΡΠ°ΡΠ° ΠΊΠ°ΠΊΠΎ βΠΠΎΡΡΠΎ Π±Π΅ΡΠ΅ Π²ΠΎΠ²Π΅Π΄Π΅Π½ ΠΎΠ²ΠΎΡ Π΄Π΅ΡΠ°Π» Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ (Π½Π° ΠΏΡ. ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°)?β, βΠΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ ΠΊΠΎΠ»ΠΊΠ°Π² ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΠ΄ ΠΌΠΎΡΠΎΡ ΠΏΡΠΈΠ΄ΠΎΠ½Π΅Ρ Π²ΠΎ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Π΅ ?β, βΠΠΎΡ Π±Π΅ΡΠ΅ Ρ Π°ΠΊΠΈΡΠ°Π½ ΠΎΠ΄ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΎΠ±Π΅Π»Π΅ΠΆΡΠ²Π°ΡΠΈ ΠΈ ΠΊΠΎΠ³Π°?β, βΠΠΎΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π° Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΡΠ° ΠΏΡΠ΅ΠΊΠΈΠ½Π° ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° (ΠΈΠ°ΠΊΠΎ ΡΠ΅ ΡΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° Π½Π΅ ΡΡΠ΅Π±Π°ΡΠ΅, ΠΏΡΠΎΠ²Π΅ΡΠΈΠ²ΠΌΠ΅ ΡΓ¨!?)β
Π‘ΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° Π²Π΅ΡΠ·ΠΈΠΈΡΠ΅ Π³ΠΎ Π½Π°Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ²Π°Π°Ρ ΠΎΠ²Π° ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΎΡ Π½Π° Π³ΡΠ°Π½ΠΊΠ°, ΠΊΠΎΠ½ΡΠ΅ΠΏΡ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΡΡΠΎ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π·Π½Π°ΡΠΈ ΡΠΎΡΠ΅Π΄Π΅Π½ Π΄Π΅Π» ΠΎΠ΄ ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΠΎ Π΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠΊΠΈ Π·Π½Π°ΡΠ°ΡΠ½ΠΎ Π·Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΎΡ. ΠΡΠ°Π½ΠΊΠΈΡΠ΅ ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π·Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ, ΠΏΠΎΠ½Π΅ΠΊΠΎΠ³Π°Ρ ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Π°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ Π³ΡΠ°Π½ΠΊΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΡΠΊΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΈΡΡΠ°ΡΠ° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°. ΠΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ°Π·Π³ΡΠ°Π½ΡΠ²Π°ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΡΠ΅ΠΊΠΎΠ²ΠΈ (ΠΊΠΎΠΈ ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ ΠΌΠ΅ΡΠ½ΡΡΡΠΈΠΌ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΠ΄ Π·Π° ΡΠ°Π·Π²ΠΎΡ, ΠΊΠΎΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π½Π°ΡΠ΅ΠΊΠ°Π΄Π΅ ΠΈ ΡΠ΅ΠΊΠ°Π΄Π΅), ΡΠ΅ΠΊΠΎΡ ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ΅Π½ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ ΠΌΠΎΠΆΠ΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° ΡΠΏΡΠ°Π²ΡΠ²Π° ΡΠΎ ΠΌΠ½ΠΎΠ³Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΠΈ Π³ΡΠ°Π½ΠΊΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ, ΠΎΠ΄ ΠΊΠΎΠΈ ΡΠ΅ΠΊΠΎΡΠ° ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΡΠ²Π° ΠΏΠΎ Π·ΡΠ΅Π»ΠΎΡΡ ΠΈΠ»ΠΈ ΠΊΠ²Π°Π»ΠΈΡΠ΅Ρ. ΠΠ²Π° ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π°Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ ΡΠΎΠΏΡΡΠ²Π΅Π½Π°ΡΠ° ΠΈ ΡΡΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π±Π΅Π· Π΄Π° ΡΠΎΠ·Π΄Π°Π²Π°Π°Ρ ΡΓ¨ ΡΠ°ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΡ ΠΏΠ°Ρ.
ΠΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΎ, ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π° Π³Π»Π°Π²Π½Π° Π³ΡΠ°Π½ΠΊΠ° ΡΡΠΎ Π³ΠΎ ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π° βΠΎΡΠΈΡΠΈΡΠ°Π»Π½ΠΈΠΎΡβ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄, ΠΎΠ΄ ΠΊΠΎΡ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈΡΠ΅ Π³ΡΠ°Π½ΠΊΠΈ ΡΠ΅ ΡΠ°Π·Π³ΡΠ°Π½ΡΠ²Π°Π°Ρ Π·Π° ΡΠ΅ΠΊΠΎΡΠ° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°, ΠΊΠΎΠΈ ΡΠ΅Π΄ΠΎΠ²Π½ΠΎ (ΠΈΠ΄Π΅Π°Π»Π½ΠΎ ΠΏΠΎ ΡΠ΅ΠΊΠΎΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅) ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π°Ρ ΡΠΎ Π³Π»Π°Π²Π½Π°ΡΠ° Π³ΡΠ°Π½ΠΊΠ°, Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΡΠΈ ΠΈΠΌ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠΎ Π½Π°ΡΠ½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΎΡ ΠΈ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ Π³ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π°Ρ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ ΡΡΠΎ ΡΠΈΠ΅ Π³ΠΈ ΡΠ°ΠΊΠ°Π°Ρ Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π°Ρ ΡΠΎ ΠΎΡΠΊΡΠΈΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π»Π΅Π³ΡΠ²Π°Π°Ρ ΠΎΠ΄ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ ΡΡΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ°Π½ΠΎ.
ΠΠΎΠ³Π° ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°ΡΠ΅ Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ (ΡΡΠΎ Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΠΏΡΠΎΠ½Π°ΠΎΡΠ°ΡΠ΅ Π·Π°Π΅Π΄Π½ΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΠΊ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π° Π½Π° ΡΠ΅ΡΠΎΠ²ΠΈ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΈ Π³ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π°Ρ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π²ΡΠ· Π΄ΡΡΠ³Π°, ΠΎΠ²Π°Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ° ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π° rebase, ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅ΡΠΎ Π΅ ΡΠ΅ΡΠΈΡΠΈ ΠΊΠ°ΠΊΠΎ rebase, ΡΠΎΠ° ΡΠ°ΠΌΠΎ Π³ΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠ° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π³ΡΠ°ΡΠΈΠΊΠΎΠ½ΠΈ ΠΏΠΎΠΈΠ½Π°ΠΊΡ, ΠΊΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΡΠΎ ΠΈΠΌ Π΅ Π½Π΅Π·Π³ΠΎΠ΄Π½ΠΎ Π΄Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π°Ρ, ΠΏΠ° ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°Π°Ρ Π΄Π° Π³ΠΈ Π½Π°ΠΏΡΡΡΠ°Ρ ΡΠΏΠΎΡΡΠ²Π°ΡΠ°ΡΠ° Π²ΠΎ ΠΊΠΎΡΠΈΡΡ Π½Π° ΠΏΡΠ΅Π±Π°Π·ΠΎΠ²ΠΈΡΠ΅) ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π°Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° Π²Π΅ΡΠ·ΠΈΠΈ (VCS) ΠΊΠΎΡΠΈΡΡΠ°Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅ Π½Π° Π²Π½Π°ΡΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΈ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π³ΠΈ Π΄Π΅Π»Π°Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ, ΡΠ° ΡΡΠ΅ΡΠΈΡΠ°Π°Ρ ΡΠ΅ΠΊΠΎΡΠ° Π»ΠΈΠ½ΠΈΡΠ° ΠΊΠ°ΠΊΠΎ Π·Π½Π°ΠΊ ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ Π½ΠΈΠ²Π½ΠΈ ΡΠ΅ΠΊΠ²Π΅Π½ΡΠΈ, Π° ΠΏΠΎΡΠΎΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ²Π°Π°Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° Π΄Π° Π³ΠΈ ΡΠΏΠΎΡΠ°Ρ ΡΡΠΎ Π΄ΠΎΠ°ΡΠ°Π°Ρ ΠΎΠ΄ Π±ΠΈΠΎΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ°ΡΠ°.
ΠΠ° ΠΆΠ°Π», ΠΎΠ²Π° ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π»ΠΈΠ½ΠΈΡΠ°-ΠΏΠΎ-Π»ΠΈΠ½ΠΈΡΠ° Π½Π° ΠΈΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π΅ΠΌΠ° Π½ΠΈΠΊΠ°ΠΊΠ²Π° Π²ΡΡΠΊΠ° ΡΠΎ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°. ΠΠ΅Π³ΠΎΠ²Π°ΡΠ° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π° ΠΏΡΠ΅Π΄Π½ΠΎΡΡ Π΅ ΡΡΠΎ Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½Π° ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΠ·Π°Π»Π½Π°. ΠΠ΅Π΄ΠΎΡΠ»Π΅Π΄Π½ΠΎΡΡΠ° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ, ΡΡΠΎ Π΅ ΠΏΠΎΡΡΠΎΡΠ°Π½ ΠΈΠ·Π²ΠΎΡ Π½Π° Π³Π»Π°Π²ΠΎΠ±ΠΎΠ»ΠΊΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅. Π Π΅ΡΠ°Π²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ Π±Π°ΡΠ° ΠΎΠ΄ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΎΡ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ Π΄Π° Π³ΠΈ ΠΏΡΠΎΡΡΠΈ Π΄Π²Π΅ΡΠ΅ Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΡ, Π½Π΅ ΡΠ°ΠΌΠΎ Π΄Π΅Π»ΠΎΠ²ΠΈΡΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ ΠΎΠ΄ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΡ Π·Π° ΡΠΏΠΎΡΠ΅Π΄Π±Π° Π»ΠΈΠ½ΠΈΡΠ°-ΠΏΠΎ-Π»ΠΈΠ½ΠΈΡΠ° ΠΊΠ°ΠΊΠΎ βΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠΈβ ΠΈΠ»ΠΈ βΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΠΈβ, ΡΡΠΊΡ ΠΌΠΎΠΆΠ΅Π±ΠΈ ΠΈ ΡΠ΅Π»ΠΈΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΎΡ ΠΌΠΎΡΠ° Π΄Π° Π³ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΡΠ°ΡΠ½ΠΎ Π΄Π° Π³ΠΎ Π½Π°ΠΏΠΈΡΠ΅ ΡΠΏΠΎΠ΅Π½ΠΈΠΎΡ ΠΊΠΎΠ΄ ΠΈ Π΄Π° Π³ΠΈ ΡΠ΅ΡΠΈ ΡΠΈΡΠ΅ Π½Π΅Π΄ΠΎΡΠ»Π΅Π΄Π½ΠΎΡΡΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΡΠ°Π½ΡΠ²Π°Π°Ρ ΡΡΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΈ ΠΊΠΎΠ³Π° Π°Π»Π°ΡΠΊΠ°ΡΠ° Π»ΠΈΠ½ΠΈΡΠ° ΠΏΠΎ Π»ΠΈΠ½ΠΈΡΠ° ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎ Π³ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΡΡΠΎ ΡΠ΅ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° ΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ ΡΡΠΈΠ²ΠΈΡΠ°Π»Π½ΠΈ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΡΠ΅ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ. ΠΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π°Ρ Π½Π° ΡΠ°ΡΠ½ΠΎ ΡΠΏΠΎΠ΅Π½ΠΈΠΎΡ ΠΊΠΎΠ΄, ΡΠΈΡΡΠ°ΡΠΈΡΠ°ΡΠ° ΡΡΠ°Π½ΡΠ²Π° ΡΠ΅Π»ΠΎΡΠ΅Π½ ΠΊΠΎΡΠΌΠ°Ρ. Π ΠΏΠΎΠΊΡΠ°Ρ ΡΠΆΠ°ΡΠ½ΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΡ Π»ΠΈΠ½ΠΈΡΠ°-ΠΏΠΎ-Π»ΠΈΠ½ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π°ΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°Π°Ρ Π΄Π° Π½Π΅ ΠΌΡ ΠΏΡΠ°Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΠ΄Π΅Π½ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π°Ρ Π²Π°ΠΊΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π΅ Π΄Π° ΡΠ΅ Π±Π°ΡΠ° Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π°Π°Ρ ΠΈΠ·Π²ΠΎΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΠΎ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΊΠ°Π½ΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡΠ°, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΡΡΠ½Π°ΡΠ° Π±ΠΎΡΠ°.
Π‘Π΅ ΡΠ°Π·Π±ΠΈΡΠ°, ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΆΠ°ΡΠ½ΠΈ ΡΠ»ΡΡΠ°ΠΈ (ΠΈ Π²ΠΎΠΎΠΏΡΡΠΎ, Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° Π½ΠΈΠ², Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΡ Π»ΠΈΠ½ΠΈΡΠ° ΠΏΠΎ Π»ΠΈΠ½ΠΈΡΠ° Π΅ Ρ Π΅ΡΡΠΈΡΡΠΈΡΠΊΠΈ, ΠΌΠΎΠΆΠ΅ ΡΡΠΈΠ²ΠΈΡΠ°Π»Π½ΠΎ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠΊΡΡΠ΅Π½ ΠΊΠΎΠ΄, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π΄Π΅Π½ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π» ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, Π° Π΄ΡΡΠ³ Π²ΠΎ Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π°ΠΏΠΈΡΠ° ΠΏΠ°ΡΡΠ΅ Π½ΠΎΠ² ΠΊΠΎΠ΄ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ° ΡΠ°Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π½Π΅ΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅/ΡΠ΅Π±Π°Π·ΠΈΡΠ°ΡΠ΅ ΠΎΠ²Π΄Π΅, Π½ΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΎΡ ΡΠ΅ ΡΡΠ°Π½Π΅ Π½Π΅ΡΠ°Π±ΠΎΡΠ΅Π½) - ΠΎΠ²Π° Π΅ ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΠΎΡ Π²Π½Π°ΡΡΠ΅ΡΠ΅Π½ ΠΌΠΎΠ΄Π΅Π».
Π ΠΏΠΎΠΊΡΠ°Ρ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠ΅ΡΠΎ Π²ΠΎ ΠΎΠ²Π°Π° ΠΎΠ±Π»Π°ΡΡ ΡΡΠ°Π΅ ΠΎΠΊΠΎΠ»Ρ 30 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ°ΡΠ΅ ΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΊΠΎΠΌΠ΅ΡΡΠΈΡΠ°Π»Π½ΠΈ ΠΊΠΎΠΌΠ΅ΡΡΠΈΡΠ°Π»Π½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ, ΠΎΠ²Π° ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠ΅ Π΄ΠΎ Π½Π΅ΠΎΠ΄Π°ΠΌΠ½Π° Π½Π΅ Π±Π΅ΡΠ΅ ΠΏΡΠ΅ΡΠ²ΠΎΡΠ΅Π½ΠΎ Π²ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. ΠΠ°ΡΠ³ΠΎΠ»Π΅ΠΌΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ ΡΠΎΡΡΠ²Π΅ΡΡΠΊΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ° ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΏΠΎΡΠ½Π°Π° Π΄Π° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π°Ρ Π²ΠΎ ΡΠ°Π½ΠΈΡΠ΅ 2010-ΡΠΈ, ΠΈ Π±Π΅Π° ΡΠΎΠΊΡΡΠΈΡΠ°Π½ΠΈ Π³Π»Π°Π²Π½ΠΎ Π½Π° ΡΠ°Π·ΠΈΠΊΠΎΡ ΠΠ°Π²Π°.
ΠΠ°ΡΠΈΡΡΠ°ΠΊΠ½Π°ΡΠ°ΡΠ° Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° ΠΎΠ΄ ΡΠΎΡ ΠΏΠ΅ΡΠΈΠΎΠ΄, GumTree, Π΅ ΡΠΎΠ·Π΄Π°Π΄Π΅Π½Π° ΠΎΠ΄ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°Ρ ΡΠΎ Π°ΠΊΠ°Π΄Π΅ΠΌΡΠΊΠΎ ΠΏΠΎΡΠ΅ΠΊΠ»ΠΎ, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Java, ΠΈΠΌΠ° ΡΠ²ΠΎΡΠ° Π°ΠΏΡΡΡΠ°ΠΊΡΠ½Π° Π²Π½Π°ΡΡΠ΅ΡΠ½Π° ΠΏΡΠ΅ΡΡΡΠ°Π²Π° ΠΊΠΎΡΠ° ΡΡΠΎ ΠΏΡΠ΅ΡΡ ΠΎΠ΄ΠΈ Π½Π° ΡΡΠ²Π°ΡΠΎΡ Π½Π° Π΄ΡΠ²ΡΠ° ΠΈ ΠΈΠΌΠ° Π·Π°Π΄Π½ΠΈΠ½ΡΠΊΠΈ Π·Π°ΡΠ½ΠΎΠ²Π°Π½ΠΈ Π½Π° Π΄ΡΠ²ΠΎΡΠ΅Π΄Π°Π²Π°Ρ ΠΈ Π·Π°ΡΠ½ΠΎΠ²Π°Π½ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ·Π²ΠΎΡΠΎΡ ΠΊΠΎΠ΄ Π²ΠΎ Π°ΠΏΡΡΡΠ°ΠΊΡΠ½ΠΈ ΠΏΡΠ΅ΡΡΡΠ°Π²ΠΈ. ΠΠ²ΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° (Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° Π΄Π½Π΅Π²Π½ΠΈΠΊ Π·Π° ΡΠ΅ΠΊΡΡΡΠ°Π»Π½ΠΈ Π½Π°ΡΡΠ°Π½ΠΈ; ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΡΡΠΎΠΈ ΠΈ API ΡΡΠΎ Π»Π΅ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ° ΠΎΠ΄ ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΡΠ°Π·ΠΈΠΊ ΡΡΠΎ ΠΈΠΌΠ° Π²ΡΡΠΊΠΈ Π·Π° Java) ΠΈ Π΄Π° Π³ΠΈ Π²ΠΈΠ·ΡΠ΅Π»ΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅. Π‘Π΅ΠΏΠ°ΠΊ, Π·Π° ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΠΊΠ°ΠΊΠΎ ΠΈ Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ ΠΎΠ΄ Π½Π΅Π³ΠΎ, ΡΠΎΠ° Π½Π΅ Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π»ΠΈΠ²ΠΎ Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ ΠΊΡΡΠΈΡΠ°ΡΠ° (ΡΠ΅ΠΏΠ°ΠΊ, Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ Π΅ Π΄Π΅ΠΊΠ° ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ Π·Π° Π²ΡΠΈΡΡΠ²Π°ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π°Ρ ΠΏΡΠ΅ΠΊΡ API).
ΠΠΎΠΌΠ»Π°Π΄Π° ΠΈ ΠΏΠΎΠΏΡΠ°ΠΊΡΠΈΡΠ½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° difftastic Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π²ΠΎ Rust, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΡΡΠ²Π°Ρ Π½Π° Π΄ΡΠ²ΡΠ° ΠΈ Π΅ ΡΠΎΠΊΡΡΠΈΡΠ°Π½Π° Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΡΡΠ°ΠΊΠ½Π°ΡΠΈ ΡΠ°Π·Π»ΠΈΠΊΠΈ Π²ΠΎ ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ°. ΠΠ²ΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΠΎΠ½ Π²ΠΈΠ·ΡΠ΅Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ ΠΈ Π³Π΅Π½Π΅ΡΠ°Π»Π½ΠΎ Π½Π΅ΠΌΠ° Π·Π° ΡΠ΅Π» Π΄Π° Π³ΠΈ ΡΠΏΠΎΡΡΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π΄Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ²Π° Π·Π°ΠΊΡΠΏΠΈ.
ΠΡΠΎΠ΅ΠΊΡΠΎΡ ΠΌΠ΅ΡΠΆΠΈΡΠ°Ρ Π½Π΅ΠΎΠ΄Π°ΠΌΠ½Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°. ΠΠ²Π°Π° Π°Π»Π°ΡΠΊΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π²ΠΎ Rust (21 MiB!), ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π° Π½Π° ΡΡΠ²Π°Ρ Π½Π° Π΄ΡΠ²ΡΠ°, ΠΊΠΎΡ ΡΡΠ°Π½Π° ΡΡΠ°Π½Π΄Π°ΡΠ΄ Π·Π° Π³ΡΠ°ΠΌΠ°ΡΠΈΡΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ Π±Π΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΠΎ ΡΠ°Π·Π²ΠΎΡΠ½ΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΡΠ°Π½Π° LLVM Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ΅ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ ΡΠ²ΠΎΠΈΡΠ΅ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈ, mergiraf ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΠΈ, ΡΡΠΊΡ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ Π·Π° ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅. ΠΠΎΠ΄ Ρ Π°ΡΠ±Π°ΡΠ°, mergiraf ΠΊΠΎΡΠΈΡΡΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΡ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ GumTree Π·Π° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° Π»Π΅ΠΏΠ΅Π½ΠΊΠΈ, Π° Π·Π° ΠΏΡΠΈΠΌΠ΅Π½Π°, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΡ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ spork, ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½ Π·Π° ΡΡΡΡΠΊΡΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ²Π°ΡΠΈ Π½Π° Π΄ΡΠ²ΡΠ°.
Π‘Π΅ΡΠΈΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ° Π½Π° Π·Π°ΠΊΡΠΏΠΈ Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π°Ρ ΠΏΠΎΠ΄ΠΎΡΠ½Π°, Π·Π° ΠΆΠ°Π», Π½Π΅ Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π° (Π½ΠΎ Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ Π΅ Π΄Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΡΠΎ ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π΄Π½Π΅Π²Π½ΠΈΡΠΈΡΠ΅ Π·Π° Π½Π°ΡΡΠ°Π½ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ ΠΎΠ΄ GumTree). ΠΡΡΠ³ Π²Π΅ΡΡΠ²Π°ΡΠΊΠΈ Π½Π°ΡΠΈΠ½ Π·Π° ΠΏΡΠΈΠΌΠ΅Π½Π° Π½Π° ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ Π±ΠΈ Π±ΠΈΠ» ΠΏΡΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ Π½Π΅ ΠΏΡΠ΅ΠΊΡ Π·Π°ΠΊΡΠΏΠΈ, ΡΡΠΊΡ ΠΏΡΠ΅ΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° Π·Π° ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΈΡΠ΅ Π½Π° LSP, ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π²ΠΎ ΠΎΡΠΊΡΠΈΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ΅Π»ΠΈΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΈΠ·ΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ° Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½Π° ΡΠ°ΠΌΠΎ Π·Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ.
ΠΡΠΈΠΌΠ΅Ρ Π½Π° ΡΠ°Π±ΠΎΡΠ°: Π·Π°Π΅Π΄Π½ΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΠΊ βbase.pyβ (Π²ΠΎΠ²Π»Π΅ΡΠ΅Π½ΠΈ ΠΊΠ°ΡΡΠΈΡΠΊΠΈ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½Π° Π»ΠΈΠ½ΠΈΡΠ° Π½Π° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ) foo = 1 def main(): print(foo + 2 + 3) βa.pyβ (Π²ΠΎΠ²Π»Π΅ΡΠ΅Π½ΠΈ ΠΊΠ°ΡΡΠΈΡΠΊΠΈ, 2 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ, Π½Π°ΠΌΠ΅ΡΡΠΎ Π΅Π΄Π½Π°, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π·Π° ΡΠ»Π°Π΄ΠΎΠ»Π΅Π΄ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΏΠ΅ΡΠ°ΡΠ΅ΡΠ΅ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ, ΡΠ΅ Π΄ΠΎΠ΄Π°Π²Π° ΠΊΠ»Π°ΡΠ°ΡΠ° βbazβ: ΠΎΠ΄ ΡΠ²ΠΎΠ· Π½Π° ΡΠ»Π°Π΄ΠΎΠ»Π΅Π΄ ic foo = 1 def main(): ic(foo + 2 + 3) ΠΊΠ»Π°ΡΠ° baz: def __init__(self): """baz"" "b.py" (ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° "foo" ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½Π° Π²ΠΎ "bar", ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΡΠΎ "ΡΡΠ½Π°" ΠΏΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ Π²ΠΎΠ²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΏΡΠ°Π·Π½ΠΈ ΠΌΠ΅ΡΡΠ° ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π»ΠΈΠ½ΠΈΠΈΡΠ΅ ΡΠ΅ ΡΠ΅ΡΠ°Ρ): Π»Π΅Π½ΡΠ° = 1 Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ° main(): ΠΏΠ΅ΡΠ°ΡΠ΅ΡΠ΅(Π»Π΅Π½ΡΠ° + 2 + 3) ΠΠΎΠ²ΠΈΠΊΠ°Ρ ./mergiraf merge ./base.py ./a.py ./b.py -x a.py -y b.py -s base.py -o ./res.py Π³ΠΎ Π΄Π°Π²Π° ΡΠ»Π΅Π΄Π½ΠΈΠΎΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΎΠ΄ ΡΠ²ΠΎΠ· Π½Π° ΡΠ»Π°Π΄ΠΎΠ»Π΅Π΄ ic bar = 1 def main(): ic(bar + 2 + 3) class baz: def __init__ (self): """baz""" (Π·Π° ΠΏΠ΅ΡΠ°ΡΠ΅ΡΠ΅ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° "icecream", ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° "foo" ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π° Π²ΠΎ "bar", ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π° ΡΠΎ "ΡΡΠ½ΠΎ" ΠΏΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ Π²ΠΎΠ²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅ β ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈ ΠΏΡΠ°Π·Π½ΠΈ ΠΌΠ΅ΡΡΠ° ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π»ΠΈΠ½ΠΈΠΈ, ΠΌΠ΅ΡΠ°Π²ΠΈΠ½Π° ΠΎΠ΄ ΡΠ°Π·ΠΈΡΠΈΡΠ° ΠΈ ΠΏΡΠ°Π·Π½ΠΈ ΠΌΠ΅ΡΡΠ° Π·Π° Π²ΠΎΠ²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅, Π½ΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½Π°ΡΠ° ΡΠΎΡΠΌΠ°).
ΠΠ΅Π΄ΠΎΡΡΠΈΠ³ΠΎΡ Π½Π° Π°Π»Π°ΡΠΊΠ° Π΅ Π²Π΅Π΄Π½Π°Ρ Π²ΠΈΠ΄Π»ΠΈΠ². Π‘ΡΠ°ΡΠ»ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠ΅ ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ .editorconfig, Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΡΡΠΈΠ»ΠΎΡ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ°Π·ΠΈΡΠΈΡΠ° Π²ΠΎ ΠΏΡΠ°Π·Π½ΠΈ ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠΈΡΠ°ΡΠ°ΡΠ΅ Π½Π° ΡΡΠ½ΠΈΠΎΡ ΡΡΠΈΠ» ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ Π²ΠΎ b.py, ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΏΡΠΈΠ΄ΡΡΠΆΠ΅Π½ΠΈ ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ .editorconfig. ΠΠ°ΡΠΎΠ°, Π·Π° ΠΏΠΎΠΏΡΠ°Π²ΠΈΠ»Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π° Π½Π° ΡΠ°ΠΊΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π°Π»Π°ΡΠΊΠ°ΡΠ° ΠΌΠΎΡΠ° Π΄Π° ΠΈΠΌΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡ Π·Π° Π³Π»ΠΎΠ±Π°Π»Π΅Π½ βΡΡΠ°Π½Π΄Π°ΡΠ΄Π΅Π½β ΡΡΠΈΠ» ΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΏΠΎΠ²Π»Π΅ΠΊΡΠ²Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ ΠΎΠ΄ β.editorconfigβ.
ΠΠ·Π²ΠΎΡ: opennet.ru
