rails.se
Versionshantering med darcs

darcs, ett annorlunda versionshanteringssystem

Fördel: bara en mapp med metainformation. Ingen server att sätta upp: bara att dra igång.

Vad är annorlunda?

  • Koden struktureras inte enligt versioner på en tidslinje, utan som en kortlek av “snuttar” (patches). Om din kortlek (arbetskopia) är likadan som min på när två kort, så funderar darcs själv ut att det är just de två patcharna som du vill ha.
  • Det är distribuerat: ingen central server, alla arbetskopior är autonoma. Det gör att man mycket lätt kan grena ut ett projekt (“brancha”). Man märker bara upp sin kopia med en “tag”, till exempel: “Julaftonsversionen2005”, så har man en release.
  • I och med att allas kopia av koden har samma art, så kan man skicka patchar till varandra. Via email. Kod är text, och det tar darcs fasta på.

Hur kommer man igång?

Att dra igång med darcs är enkelt. Manualens kapitel Getting started visar vägen. I korthet – dra ner binären, ställ dig i den katalog där ditt innehåll som ska versioneras ligger, och skriv:

darcs init
darcs add -r *
darcs record -am "Min första import"

Ovanstående skapar en _darcs-mapp där du står, och versionerar alla filer i den här mappen, och alla dess underkataloger (växeln r står alltså som väntat för recursive).

Efter init får du ange din emailadress, som identifierar dina patches som dina.

record har växeln a, som står för “all patches”, alla ändringar. Växeln m står för “message”, och tar ditt loggmeddelande som argument.

Darcs fattar själv vilka filer som är irrelevanta (Skipping boring file: CVS). Nu kan du skriva:

darcs changes

Så ser du meddelandet “Min första import” i changelog-format.

Du skriver lite nytt, ändrar lite gammalt, och sparar dina dokument. Sen kommer du tillbaks från lunch, har glömt allt, och frågar darcs:

darcs whatsnew

Så ser du en lista över de ändringar som finns i koden gentemot vad som finns i ditt repo.

Och du ser att koden var bra. Fint:

darcs record

Nu utan parametrar. Då stegar darcs genom alla ändringarna (en ändrings-bit kallas en “hunk”), och du får säga om den hunken ska in i repot eller ej. Till sist får du en prompt om att du ska skriva en loggrad om din ändring.

Läs mer om att komma igång

En fin genomgång finns i Darcs for Rails Users

Om du trivs med CVS, så kan du snabbt komma fram via Switching from CVS

Finns det några verktyg för darcs?

Via den Darcs for Rails-artikeln hittade jag Trac on Darcs som är samarbetsmjukvaran Trac, men ovanpå mer speciella versionshanteringsverktyg, som darcs eller Bazaar-NG.

Andra artiklar om decentraliserade versionshanteringssystem

Slideshow: Revision Control Systems