Jump to content

Merge commity, které ticho zabíjejí váš git historie

From Babylon SIGNALIS Wiki

Typickou chybou je squashe aplikovat dodatečně až po otevření pull requestu, kdy už jiní vývojáři z větve čerpají. Změna historie, kterou někdo sdílí, vede ke konfliktům a frustraci. Proto pravidlo zní: squashe provádějte lokálně před odesláním větve na vzdálený repozitář. Jakmile větev pushnete, považujte její historii za veřejnou a neměňte ji bez dohody týmu. Pokud potřebujete upravit i po pushnutí, použijte git push --force-with-lease, který zabrání přepsání cizích změn, ale stále vyžaduje opatrnost a komunikaci.

Než vylezeš, seznam se s pravidly. Každá stěna má svůj provozní řád – kde se smí lézt, jak se jistí, kde se nesmí stát. Většina stěn nabízí takzvané top rope lezení, kdy je lano vedeno shora a jistí tě druhá osoba. Pokud jdeš sám nebo sama, je nejlepší se přihlásit na úvodní kurz nebo požádat o asistenci personálu. Nikdy nelez na vlastní pěst bez jištění, to je největší a nejčastější chyba začátečníků. Stejně tak se vyhni lezení pod někým, kdo je nad tebou – může ti spadnout na hlavu lano nebo karabina.

Pátý a poslední návyk je o tom, že měníte stav jen na jednom místě. Pokud máte globální objekt, který reprezentuje stav aplikace, neměňte jeho vlastnosti přímo z každé funkce. Vytvořte si sadu funkcí, které stav mění, a ty vracejí novou kopii (immutable pattern). Tím se vyhnete situaci, kdy jedna funkce změní stav a druhá na to naváže špatně, protože si myslí, že pracuje s původními daty. Typická chyba: mutace pole v cyklu, která způsobí, že se indexy posunou a vy zpracováváte nesprávné položky. Řešení spočívá v tom, že vždy pracujete s novým polem nebo objektem, a to i za cenu mírné ztráty výkonu – výhody při ladění to bohatě vynahradí. Když budete tyto zásady dodržovat, zjistíte, že většina chyb se objeví dříve, než se dostanou do produkce.

Častým omylem je přeplnění prostoru věšákem, botníkem a skříní. Sáhněte po úložných kusech s nožičkami – pod nimi prochází světlo a vzduch, takže nábytek nepůsobí jako blok. U botníku volte otevřené police nebo variantu s drátěnými koši, které nebrání pohledu. Věšák raději připevněte na stěnu s háčky ve dvou výškách – místo objemné stojací věšákové konstrukce. Pokud se bez skříně neobejdete, zvolte hloubku jen 30 cm a světlá dvířka bez vzoru, ideálně s matným povrchem.

Jak barvy a zrcadla mění vnímání rozměrů Na stěnách se vyhněte tmavým a sytým odstínům – pohlcují světlo a místnost jakoby zmenšují. Místo toho zvolte bílou, světle šedou nebo pastelové tóny s jemným nádechem (např. broskvová, mátová). Důležité je použít stejnou barvu na stěnách i stropu – tím vytvoříte plynulý přechod, který oko vnímá jako vyšší strop. Pokud chcete dodat hloubku, natřete jednu stěnu (např. tu, kde visí zrcadlo) o dva odstíny tmavší, ale jen v případě, že je předsíň orientovaná na jih a má dostatek denního světla.

Třetím návykem je explicitní pojmenování stavů. Místo toho, abyste používali magické hodnoty jako status === 2 nebo type === 'A', si vytvořte konstanty, případně použijte enum objekt nebo mapu. Když narazíte na chybu, která se týká konkrétního stavu, nemusíte procházet celý soubor a hádat, co číslo 2 znamená. Z praxe: nejhorší je řetězec, který se porovnává bez ohledu na velikost písmen. Pak se stane, že hodnota 'aktivni' a 'Aktivni' se chovají různě a vy nevíte proč. Řešením je normalizace vstupu hned na začátku – buď pomocí funkce, nebo pomocí konstanty, která vrací standardní podobu.

Nakonec si uvědomte, že čistá historie není cíl, ale prostředek. Pokud váš tým používá code review nástroje, jako je GitHub, GitLab nebo Bitbucket, můžete využít jejich tlačítko „Squash and merge" nebo „Rebase and merge" při začlenění pull requestu. Tím se situace zjednoduší, protože vývojáři nemusí provádět rebase lokálně. Ovšem pozor: tyto funkce automaticky smažou původní commit ID a mohou zamaskovat skutečnou sekvenci změn. Proto doporučuji nastavit v repozitáři zákaz vytváření merge commitů pomocí tzv. „merge queue" nebo pravidel, která vyžadují nejnovější revizi před začleněním.

Výměnu nepoznáte pouhým okem. Tmavá nebo zakalená barva je sice varovným signálem, ale korektní stav určí pouze měření obsahu vody. K tomu slouží jednoduchý tester, který se prodává v běžném autodílech. Naměříte-li hodnotu nad tři procenta, neváhejte s výměnou. Pokud nemáte tester, můžete se řídit časovým intervalem. Ony dva roky nejsou náhodné: během této doby kapalina běžně absorbuje kritické množství vlhkosti. U vozů s ABS nebo stabilizačním systémem je navíc zanedbání výměny ještě riskantnější, protože tyto systémy pracují s vysokými tlaky a i malá bublinka páry může narušit jejich funkci.