|
Jeg er kommet ud i det private erhversliv og har fundet ud af at det somme tider er nødvendigt at samarbejde med mine kollegaer om kode. Vi har aldrig været udsat for den problemstilling før, og har prøvet alle mulige ting for at kunne dele kildekode. Vi har feks løbende sørget for at sende hinanden worddokumenter med kildekoden over email. Det fungerer rigtig godt indtil man har brug for at to personner må rette i den samme kode. Hvis bare der fandtes et værktøj så man kunne arbejde på den samme kode flere personer samtidigt uden at træde hinanden over tæerne så ville det være fedt. Måske endda også noget hvor man kunne lave backups løbende, eller at kunne se sine ændringer over tid. Hvordan løser I dette problem i jeres grupper/firmaer? -- Edit -- Jeg så på #diku at nogen foreslog at dele kode via Facebook. Hvad er jeres erfaringer med det? |
Revision control på DIKUs systemMens der findes flere udmærkede frie og gratis hjemmesider til "source code management" med support for både git, bazaar, mercurial, svn osv., kan det måske være en fordel at køre nogle ting på DIKUs system. gitDer findes to programmer der kan gøre det nemmere at sætte git repos op på servere: gitosis og gitolite. Dog virker begge vist bedst med root access (hvilket almindelige dødelige datalogistuderende af gode grunde ikke har). Med et lille script og nogle public ssh keys er det dog nemt at sætte et ikke-offentligt git repo op uden nogle ekstra programmer (det er nemmere at sætte et offentligt repo op, men i nogle tilfælde kan der måske være formelle krav om at koden tilhørende et projekt ikke må offentliggøres før projektet er bedømt? Er der nogen der ved om det er sådan?). Trin 0Gem følgende fil som "gs" i $HOME:
Trin 1Kør Trin 2Kør Lav et nyt repoFor at lave et nyt git repo, kør på serveren:
Fordi altsammen foregår på din bruger, vil du altid kunne clone, pull, og push til "nytrepo". For at andre skal kunne gøre det samme --- men intet mere end det --- skal du bruge scriptet "gs" fra før samt public keys fra de folk der skal have mulighed for at læse fra og skrive til repoet. For hver public key, tilføj følgende linje til "~/.ssh/authorized_keys" (for hver public key skal der bruges netop én linje):
I tilfældet med "nytrepo" ville det fx kunne se sådan her ud:
Og hvis "ole@komputer" skal have adgang til flere repoer, kan command="$HOME/gs nytrepo" bare ændres til command="$HOME/gs nytrepo repo2 repo3" osv. For at klone "nytrepo" ned på din lokale maskine, kør:
hvor
selv om du er Ole. Første gang du vil skubbe dit lokale repo til serveren skal du huske at køre
Hvis du oprettede dit git repo lokalt og ønsker at skubbe det til serveren
bagefter, kør AndetSVN har GammeltDer er en guide på dikutals wiki til hvordan man nemt kan sætte git op på sin bruger på DIKUs servere via ssh: http://dikutal.dk/wiki/revision-control-p%C3%A5-dikus-system EDIT 1: Jeg har flyttet wiki-artiklen herover så der ikke længere er et behov for at gå til Dikutals wiki. |
|
May I recommend git: Everything else is not worth it if your code base grows beyond a certain point. Do note however that git historically has been weak when handling large binary blobs. For that, you may have to look at perforce or something else instead. Especially game projects with their large amounts of artwork and other multimedia tend to need some other kind of tool. |
This sounds like a troll...