← Visi ieraksti
← →

Kurš atsauc manus komitus: spēļu dizainers, kurš spieda „Nē”

2013

Steam Defense bija mans pirmais projekts ar git. Pirms tam es strādāju ar SVN, kur zarus neizmantojām. Tāpēc arī šeit visi komitoja vienā zarā, master.

Mūsu konfigurācijas bija rakstītas C#; es jau rakstīju, kā tās darbojās. Arī es tās laboju, pievienojot jaunus tipus un parametrus. Un tad pamanīju, ka manas izmaiņas tiek atsauktas. Vienreiz, otrreiz. Paskatījos vēsturi: tas bija spēļu dizainers.

Piegāju pie viņa un pajautāju, kāpēc. Viņš bija pārsteigts: viņš neko neatsaucot, vienkārši strādājot ar konfigurācijām.

Tad es vienkārši nostājos viņam aiz muguras un vēroju, kā viņš strādā. Viņš raksta kodu konfigurācijā un nospiež „Update”. Ienāk svaigas izmaiņas, to vidū manējās, arī tieši tajā failā, kas viņam ir atvērts. Bet šis fails nav saglabāts; viņa versija dzīvo redaktora atmiņā, un automātiskās saglabāšanas toreiz nebija. Redaktors jautā: fails ir mainījies, pārlādēt? Viņš atbild „Nē” un turpina strādāt ar savu veco versiju. Tad saglabā un pušo pa virsu. Git neredz nekādu konfliktu: tas ir parasts jauns komits, kurā manu rindu vienkārši nav.

Tā viņš izdzēsa manas izmaiņas, nenojaušot, kas notiek. Un viņa vainas tur nebija: dialogs jautā par failu, nevis par kāda cita darbu, un „Nē” izskatās pēc drošākās atbildes.

Ko es no tā paņēmu: ja izmaiņas pazūd un visi saka, ka neko nav darījuši, nestrīdies — nostājies cilvēkam aiz muguras un paskaties, kā viņš strādā. Un viens kopīgs zars visiem šādas kļūdas piedod daudz sliktāk nekā atsevišķi zari ar code review pirms apvienošanas.