WebElement #20: Ondrej Svitek - Hacking Life With Git

1,632 views

Published on

Published in: Education
  • The            setup            in            the            video            no            longer            works.           
    And            all            other            links            in            comment            are            fake            too.           
    But            luckily,            we            found            a            working            one            here (copy paste link in browser) :            www.goo.gl/i7K0s4
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

WebElement #20: Ondrej Svitek - Hacking Life With Git

  1. 1. WebElement #20Hacking Life With GITUpravená verzia
  2. 2. GIT partizánTFS ServerGIT <-> TFSGITTFS ClientTFS ClientLand of unicornsWTF Servers
  3. 3. Scenáre• GIT <-> * synchronizácia• rýchly prenos zdrojákov• configuration management• database management• transformácia dát• hľadanie chýb
  4. 4. GIT <-> * synchronizáciaVersionControlSystemGIT* (download)git add --allgit commit -mgit diff --name-status HEAD^* (upload)
  5. 5. Rýchly prenos zdrojákovProblém: pomalá sieť + veľa malých súborov• git gc --aggressive --prune=now• xcopy .git• git reset --hard
  6. 6. Configuration ManagementIgnored changesServer versionedchanges (shared)Locally versionedchanges (non-shared)Konvencia: „IGNORE“ commity nie sú nikdy pushnuté do remote vetvy
  7. 7. Configuration Management (2)git cherry-pickNová feature vetva
  8. 8. Configuration Management (3)Príprava na push do remote vetvygit cherry-pickresp.git rebase -ivšetky commity okrem IGNORE
  9. 9. Configuration Management (4)git push git rebaseVýsledok: lokálna vetva stále obsahuje našu konfiguráciu, bez vplyvu na ostatných
  10. 10. DB managementDatabaseScript DDLScript dataGITDiffGrep
  11. 11. DB management (2)Výhoda: zmeny v DDL sa ľahko sledujú
  12. 12. DB management (3)Prax: kombinácia CREATE + ALTERIterácia NAlter AlterMigráciaCreateSnapshotna začiatku iterácieIterácia N+1Alter AlterMigráciaCreateSnapshotna začiatku iterácie
  13. 13. Transformácia dátScenár: komplikovaná transformácia (textu)Idea: malé kroky, commitovať zmeny kód + dátaKódDátaTransform headerKódDátaTransform bodyKódDátaTransform footer
  14. 14. Transformácia dát (2)ZmenakóduZmenadát
  15. 15. Transformácia dát (3)ZmenakóduZmenadát
  16. 16. Transformácia dát (4)Výhody: absolútna kontrola• jednoduchosť• zmeny voči predošlému kroku• zmysluplné „checkpointy“• ľahké experimentovanie (vetvy)Squash!
  17. 17. Hľadanie chýbScenár: dlho neodhalená regresná chybaIdea: binárne vyhľadávanie v commitoch
  18. 18. Hľadanie chýb (2)dlhá dobaregresná chybaOKchceme nájsť
  19. 19. Hľadanie chýb (3)chybaniekde tu
  20. 20. Hľadanie chýb (4)chybaniekde tu
  21. 21. Hľadanie chýb (5)Výsledok: rýchla identifikácia commitu s chybouAutomatizácia:• git bisect

×