Nybörjare på distanssamarbete vill testa versionshantering

Tråden skapades och har fått 15 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2009-01-10 21:47

Som titeln anger. Min kompis och jag utvecklar ihop på nybörjarnivå. Han sitter i Skåne och jag i Stockholm. Vi använder Xcode och SubEthaEdit tillsammans med skärmdelning. Tidigare har jag använt Snap Shot och Time Machine för min egen högst enkla versionshantering, men eftersom Snap Shot inte sparas i projektet, har min kompis i Skåne ingen glädje av mina Snap Shots och vice versa.

Vi har talat om att använda någon av hans eller mina gamla burkar för att köra en versionshanteringsserver, alternativt dela på kostnaden för någon on-linelösning.

Dock känns det som att inlärningskurvan är tämligen brant, och som vi får kämpa oss till den lilla kodningstid vi faktiskt får, känns det som att alternativet att spara på hans eller min iDisk, berätta för den andre vad vi gjort och hålla disciplinen är det realistiska alternativet.

Är det någon som har något förslag på enkel lösning?

Vänligen, Ylan

  • Medlem
  • Kiruna
  • 2009-01-10 23:29

Genom att använda ett distribuerat versionshanteringssystem som Mercurial, Git eller Bazaar kan ni jobba direkt mot varandra, utan behov av en dedikerad server. (Givetvis kan man, om man vill, också sätta upp ett centralt repository och använda systemet på ett traditionellt, centraliserat vis.)

Samtliga ovan nämnda system är open source, och man kan, som med så mycket annat, hitta ofantligt många åsikter på nätet om vilken som är bäst. Själv använder jag Mercurial i den utsträckning jag kan.

Tyvärr finns ingen XCode-integration med något av systemen, men det bör inte vara några större problem att få det att fungera från kommandolinjen. Troligtvis kan man behöva göra några inställningar för att få systemen att hantera ex. projektfilen, build-filer och liknande på ett korrekt sätt. (Jag gör tyvärr inte några större projekt i XCode själv, därför kan jag inte bidra med så värst mycket info om det.)

Principen är att man jobbar med koden i sitt repository (vilket är en vanlig mapp med lite extra data som systemet håller reda på), checkar (lokalt) in de ändringar man gör allt eftersom, och när det är dags att uppdatera sin partner gör man sitt repository tillgängligt för denne så att han/hon kan dra in ändringarna i sitt eget repository. Mer detaljerade instruktioner finns på resp. verktygs webbsida.

När det gäller att göra ett repository tillgängligt så tror jag alla verktyg kan använda SSH, vilket ju inte är alltför krångligt, men Mercurial har också en inbyggd webbserver. Man ger kommandot "hg serve" på toppnivån i sitt repository och sen kan partnern uppdatera genom att ge kommandot "hg pull http://ditt.ip.nr:8000" i sitt. Detta tycker jag gör det mycket enkelt att komma igång.

  • Medlem
  • Stockholm
  • 2009-01-11 00:17

Tackar, spot!

Skall kolla upp vad som skulle kunna vara lämpligt för oss.

Vänligen, Ylan

Kika också på Versions (http://www.versionsapp.com/), som för €39 också ger möjlighet att använda en professionellt hostad SVN-lösning från Beanstalk.

XCode integrerar alldeles utmärkt med SVN.

  • Medlem
  • Göteborg
  • 2009-01-11 23:14

Såvida ni inte är bekymrade om att någon annan kikar på er källkod kan Google Code vara ett alternativ. Gratis Subversion-repository och annat kul för vem som helst.

SVN är ju vanligast förstås... men jag är alltid intresserad av alternativ, och det gör att jag blir lite nyfiken på spot's tips, som är nya för mig. Det låter lite skumt, har alla var sitt "arkiv" som synkas mot varandra?

  • Medlem
  • Göteborg
  • 2009-01-12 14:16
Ursprungligen av Ingemar Ragnemalm:

SVN är ju vanligast förstås... men jag är alltid intresserad av alternativ, och det gör att jag blir lite nyfiken på spot's tips, som är nya för mig. Det låter lite skumt, har alla var sitt "arkiv" som synkas mot varandra?

Kort sagt, ja. Var och en som gör en 'checkout', eller 'clone' som det heter i exempelvis Mercurial, får en komplett kopia av ett repository. Inte bara kopior av alla filer, utan även all tidigare versionshistorik.

När man vill synka mellan två repositories kan man antingen 'pusha' sina ändringar till någon, eller låta någon annan 'pulla' ändringarna.

Distribuerad versionshantering fungerar bäst i en organisation med en klar hierarki. Linux-kerneln kan tas som ett exempel. Med alla tusentals utvecklare som hjälper till fungerar det naturligtvis inte om alla skulle 'pusha' sina ändringar till ett centraliserat repository. Istället finns det olika nivåer av filter. Linus Torvalds, som själv är ansvarig för varje release, har ett par stycken utvecklare under sig vars repositories han 'pullar' ifrån. De utvecklarna har i sin tur ett par stycken utvecklare under sig som de litar på, och så vidare.

En intressant föreläsning om distribuerad versionshantering i allmänhet och Mercurial i synnerhet kan ses här: http://video.google.com/videoplay?docid=-7724296011317502612&ei=-kFrSbyfMI62iAL-i6naBw&q=mercurial

Linus Torvalds om Git: http://www.youtube.com/watch?v=4XpnKHJAok8

  • Medlem
  • Göteborg
  • 2009-01-13 11:31

Skall man lära sig något nytt är nog ett distribuerat versionshanteringsystem rätt väg att gå. Skulle vilja säga att det är ett måste att lära sig något versionshanteringssystem om man vill bli en effektiv programmerare (det är i vilket fall bra), även om man bara programmerar själv.

Själv kör jag Git, tycker det är kanon. Jag kan inte säga att det skulle vara bättre än Bazaar eller Mercurial men jag skulle rekommendera att börja använda något av dem.

Ursprungligen av kardan:

Skulle vilja säga att det är ett måste att lära sig något versionshanteringssystem om man vill bli en effektiv programmerare (det är i vilket fall bra), även om man bara programmerar själv.

Det är inget måste, inte ens för att arbeta i grupp, men utan det får man göra det manuellt vilket kräver en massa disciplin och organisering.

  • Medlem
  • Göteborg
  • 2009-01-13 20:13
Ursprungligen av Ingemar Ragnemalm:

Det är inget måste, inte ens för att arbeta i grupp, men utan det får man göra det manuellt vilket kräver en massa disciplin och organisering.

Jag antar att om man skall vara effektiv så skall man nog inte göra något som kräver "massa diciplin och organisering" om man inte måste

  • Medlem
  • International user
  • 2009-01-15 19:32

Slår även jag ett slag för en Git-lösning.

Ni kan skapa gratis repositories på GitHub, om ni inte har några problem med att dela med er av källkoden dvs. Många stora projekt så som Rails finns redan där.

Finns även betalningsalternativ för er som är lite kodskygga om jag inte minns helt fel.

  • Medlem
  • Stockholm
  • 2009-01-17 10:15

Det verkar som att det blir SVN för detta projekt. Dock hade vi stora problem med Xcodeprojekt och Versions. Om jag committade ett projekt, blev det alltsomoftast okörbart hos min kompis, och det verkade som att det krävde en hel del manuellt arbete med att hålla koll på filer i Xcode OCH repositoriet.

När vi körde direkt i Xcode hade vi inga sådana problem.

Kommer möjligen att kika på andra lösningar för kommande projekt!

Vänligen, Ylan

  • Medlem
  • Simrishamn
  • 2009-01-19 08:17

Vi använder SVN med Unfuddle som host för våra repos. De funkar mycket bra. För själva hanteringen på klientsidan använder jag svn-verktyget från terminalen, vilket för det mesta fungerar utan problem.

Xcodes SVN-hantering är det värdelösaste jag någonsin sett. Akta dig stenhårt för den.

Versions är ett dyrt och ganska begränsat program med få funktioner. Cornerstone sägs däremot vara riktigt bra.

Ursprungligen av HannesP:

Xcodes SVN-hantering är det värdelösaste jag någonsin sett. Akta dig stenhårt för den.

Bara lite nyfiken, vad är det du tycker är så dåligt med XCodes SVN-hantering? Lite krånglig att sätta upp kanske, men när man är igång tycker jag det är riktigt funktionellt.

  • Medlem
  • Stockholm
  • 2009-01-20 00:07
Ursprungligen av Erik Aderstedt:

Bara lite nyfiken, vad är det du tycker är så dåligt med XCodes SVN-hantering? Lite krånglig att sätta upp kanske, men när man är igång tycker jag det är riktigt funktionellt.

Frågar samma sak. Om det bara är ett Xcode-projekt man lägger upp, VERKAR det fungera alldeles utmärkt.

Testar för övrigt Cornerstone, sedan något dygn tillbaka, och det verkar också vara. Däremot fick Versions svårt med XIB-filer! Frågan är bara vad som motiverar kostnaden för någon med något enstaka projekt.

Vänligen, Ylan

  • Medlem
  • Göteborg
  • 2009-04-02 18:40

Subversion funkar utmärkt för oss. Det kan jag rekommendera.

1
Bevaka tråden