onsdag den 18. februar 2009

Kærlighed ved første blik

Jeg tror, at jeg er blevet en lille smule forelsket. Det var sådan set nok det, som man kalder "kærlighed ved blik", for det var tydeligt allerede fra starten af, at vi tænkte på samme måde. Jeg har nemlig fundet et nyt program!

Det er faktisk et ret grimt program - der er ingen runde hjørner eller skinnende knapper med metallook. Og så alligevel, for det er helt klart lavet til at blive brugt, og får derfor sin egen funktionelle æstestik ... lidt ligesom en entreprenørmaskine, som kun fås i en farve (gul!), og hvor der ikke er levnet megen plads til gejl og pjat, men som alligevel er smuk på sin egen fascinerede måde.

Og hvad er det så for et program. Jo, det er den grafiske brugerflade, som kommer med git - aka. git-gui. Se selv:



Kan vi ikke blive enige om, at det ikke ligefrem er et program, som gør sig forhåbninger om at vinde nogen form for design-priser?

Men lad os kigge lidt på det: Når jeg arbejder, så starter jeg selvfølgelig med at lave et antal ændringer, og derefter laver jeg en liste over ændrede filer, som jeg så kører en diff på en ad gangen. Her bestemmer jeg med for, hvilke ændringer, som jeg vil have med i committet - og egentlig ret ofte opdager jeg, at jeg ikke var helt færdig: der er ofte noget, som kan gøre lidt bedre eller pænere. Og så tager jeg lige en iteration eller to mere.

Kast nu et blik på screendumpet. I panelet med den røde top er en liste over alle de filer, som er ændrede - eller nye - i mit arbejdsområde. Det var lige første trin, som jeg fik forærende. I panelet med den gule top, kan jeg se diff for den valgte fil - og det var andet trin. Efterhånden som jeg arbejder mig igennem filerne, så kan jeg klikke på ikonet ud for filnavnet, og så smutter de lige ned i panelet med den grønne top, som er en liste af de ændringer, der er planlagt til næste commit; og det er noget, som jeg normalt selv skal holde styr på. Nederst til højre er en god editor til at skrive commitkommentaren i - og selvfølgelig er den fremme hele tiden, så man kan udfylde kommentaren imens man reviewer sine ændringer, og ikke som det er for mig pt., nemlig at jeg må tage noter for mig selv undervejs, inden jeg til sidst får lov at skrive en kommentar.

Eller med andre ord: her er et værktøj lige efter mit hovede - alle de nødvendige dele er placeret nemt og overskueligt, lige inden for rækkevidde, lige hvor man har brug for det. Der er tænkt på det hele. Skønt!

Allerede her var jeg sådan set solgt, men bemærk så lige en ekstra lille detajle (det kan godt være, at du skal klikke på billedet for at se det i stor størrelse): filen Method.scala er nævnt både under unstaged og staged! Det er fordi, at jeg har rettet videre i den efter at jeg stagede den til commit først gang - og det diff, som jeg kan se under unstaged, er det, som er sket siden seneste staging - og det, som jeg kan se under staged er det, som er sket imellem seneste commit og seneste staging (eller det, som kommer med i dette commit, hvis ikke jeg gør yderligere). Det er en rigtig god lille bonus.

...og husk så på, at git er et distibueret versionsstyringssystem - når jeg engang committer, så er det kun imod mit lokale repository - for at det kommer videre, så skal det enten pushes videre af mig, eller pulles af andre.

5 kommentarer:

Anonym sagde ...

Jeg kunne ikke være mere enig med dig, Bjarne!
Jeg har på arbejde prøvet at anvende git fra command line, og selv om der findes en del shell-tricks, som giver lidt farver osv. så har det ikke været nok for mig - det har stadig været svært for mig at overskue brugen af git. git-gui ser helt sikkert ud til at kunne levere det overblik.

I samme åndedrag vil jeg lige anbefale gitk - endnu et program, som er lavet for at blive brugt. Det viser dig en oversigt over tidligere commits, branches osv. og selvfølgelig er der også lister af filer i de enkelte commits samt diffs af filerne :)

kent sagde ...

Har i nogen erfaringer med git-foran-subversion?

Vi bruger subversion i vores projekt i dag, og et proxy-system foran kunne for mig godt have nogle fordele, både når man er offline, og som en form for delayed commit.

Jeg kan se der findes noget git-svn halløj, men jeg er tvivl om det vil give for meget bøvl.

Unknown sagde ...

Rasmus, gitk kan nås fra Repository-menuen fra git-gui, og det bruger jeg også flittigt; men det kræver nok lidt mere tilvænning.

gitk og git-gui er faktisk glimrende eksempler på, hvordan jeg mener, at man skal lave programmer: Løs et problem (gitk=historik, git-gui=checkin), og løs det godt! Begge programmer er tydeligvis skrevet af og for folk, som selv bruger git/versionsstyring.

Kent, det korte svar er "nej", men måske kunne vi piske en stemning op ovre hos Rasmus - han har vist lidt flere læsere :-). Men subversion er da også glimrende - er der nogen, som har erfaring med merge-tracking fra version 1.5?

Anonym sagde ...

Hehe, er I ved at lokke mig til at skrive en post om SCM? :D

Unknown sagde ...

Det var da en god ide, Rasmus - det er jo et godt emne, hvis du spørger mig! :-D