webForumDet fria alternativet

Vad ska jag använda TFS, Source Safe eller annat?

Webbutveckling

11 svar · 2 953 visningar · startad av Pedda

Medlem sedan juni 20006 031 inlägg
Frågan#1

Sitter som ensam utvecklare på ett större företag.
I dagsläget så använder jag Source Safe som känns väldigt 90-tal men funkar bra då jag är ensam.
Men för min personliga utveckling mm så funderar jag på att köra TFS istället, men funderar på om det helt enkelt är för stort och onödigt då jag är ensam utvecklare?

Ni som jobbar som utvecklare, vad använder ni?
Vad rekommenderar ni?
Och hur många utvecklare är ni som jobbar mot erat verktyg?

Medlem sedan juni 200032 967 inlägg
#2

Vi är ungefär 6 personer som jobbar med subversion hos oss. Personligen har jag blivit ruskigt sugen på att köra Git i min personliga "utveckling för husbehov".

http://git-scm.com/

(Jag tycker dock snarare att SourceSafe känns som 80-tal... ;) )

Medlem sedan mars 20112 inlägg
#3

Halloj,
i dagsläget finns det ett verkyg som leder marknaden för alla andra, Subversion (http://subversion.apache.org/).
Det är gratis, snabbt och väldigt stabilt, samt stödjer det atomära incheckningar (fungerar som databas transaktioner, det blir allt eller inget). I 9 fall av 10 skulle jag rekommendera Subversion framför alla andra verktyg.

Sen finns det mer komplexa verktyg som Git eller dess windows baserade variant, Mercurial. På en teknisk nivå är dess överlägsna Subversion, men de är även krångligare att jobba med. Tycker du att TFS är för bökigt så vill du antagligen inte ens börja titta på Git och Mercurial :)
Dock vill jag nämna Mercurial eftersom den har en personlig versionshantering som du t.ex. kan köra på din laptop ouppkopplad, sen när du kommer 'hem' så checkar du in på din riktiga server.

Subversion är det jag huvudsakligen använt senaste åren i samtliga projekt jag jobbat med, det har varit allt från 2-3 användare upp till 10 stycken. Nuvarande projektet så är vi 6 utvecklare, 4 testare samt Team City som kontinuerlig byggserver. Vår .Net solution består av 47 olika projekt och totalt 1,5 milj rader kod och vi har inga som helst prestanda problem vid daglig hantering.

Skulle inte ens drömma om att hantera den kodmassan i Source Safe :D

Medlem sedan juli 200012 978 inlägg
#4

Inom Öppen Källkodsvärlden är nog Git det mest använda.
Måste tacka den nya wF medlemmen för hans klargörande inlägg! Välkommen till wF Hasp säger Lasp

Medlem sedan juni 20006 031 inlägg
#5

Jo, subversion kör jag sen tidigare privat och det är ju väldigt enkelt att komma igång med och arbeta i.

Anledning till att jag funderar på att använda TFS på jobbet är som sagt för min personliga utveckling, lära mig arbeta med verktyget. Det är ju bra att ha det i sitt CV att man har/kan jobba med det.

Men det är bra att få reda på vad ni andra använder på era företag, det ger ju en viss insikt i vad som används på marknaden idag.

Medlem sedan juni 20014 421 inlägg
#6

aspenryd skrev:

Halloj,
i dagsläget finns det ett verkyg som leder marknaden för alla andra, Subversion (http://subversion.apache.org/).
Det är gratis, snabbt och väldigt stabilt, samt stödjer det atomära incheckningar (fungerar som databas transaktioner, det blir allt eller inget). I 9 fall av 10 skulle jag rekommendera Subversion framför alla andra verktyg.

Sen finns det mer komplexa verktyg som Git eller dess windows baserade variant, Mercurial. På en teknisk nivå är dess överlägsna Subversion, men de är även krångligare att jobba med. Tycker du att TFS är för bökigt så vill du antagligen inte ens börja titta på Git och Mercurial :)
Dock vill jag nämna Mercurial eftersom den har en personlig versionshantering som du t.ex. kan köra på din laptop ouppkopplad, sen när du kommer 'hem' så checkar du in på din riktiga server.

Subversion är det jag huvudsakligen använt senaste åren i samtliga projekt jag jobbat med, det har varit allt från 2-3 användare upp till 10 stycken. Nuvarande projektet så är vi 6 utvecklare, 4 testare samt Team City som kontinuerlig byggserver. Vår .Net solution består av 47 olika projekt och totalt 1,5 milj rader kod och vi har inga som helst prestanda problem vid daglig hantering.

Skulle inte ens drömma om att hantera den kodmassan i Source Safe :D

Mercurial är inte windowsbaserad, det är rakt igenom fel att säga så. Mercurial (hg) är skrivet i python och ska gå att köra överallt där python går att köra. Det fungerar bra, tills du vill börja pusha över ssh då krävs en ssh-klient. Då kan det blir lite bökigt på windows. Men kör man windows rakt igenom är det inget man behöver bry sig om då hg går att köra helt utan ssh, då över http (eller via deras eget protokoll hg). Git kräver att du installera GNU-verktyg via Cygwin (kallas msysGit, då det är skrivet på linux för linux. MsysGit fungerar bra, men sitter du endast på windows känns det onödigt att behöva installera det för att kunna köra versionshantering. Det finns ytterligare ett verktyg som kallas Bazaar, det är utvecklarna bakom ubuntu som har utvecklat det, och är likt mercurial också skrivet i python. Rent generellt är bzr och hg enklare att använda då utvecklarna har valt att utveckla verktygen med sane defaults, medan det i git kan behövas både en och två flaggor för att utföra det du vill göra. Åh andra sidan har git mer funktionalitet och låter dig göra mer, även farliga saker och det är inte omöjligt att skjuta sig själv i foten, både en och två gånger innan man vant sig.

Om man påstår att svn är snabbt och nämner git i samma inlägg vet man inte vad man pratar om, svn är snabbt om man jämför med CVS eller om man versionshanterar på disketter. Hg och bzr är snabba, Git är ruskigt snabbt, svn är ett skämt i jämförelse. Att behöva ställa frågor till en server för att kunna utföra kommandon är förenat med sent 80-tal. Däremot kan man ha vant sig vid svns beteende och uppfattar det som normalt. När man har provat git/mercurial/bzr och gör en diff, log, cat eller annat kommando som berör äldre revisioner undrar man varför man inte bytte tidigare.

Jag tycker dessutom att det är rakt igenom fel att säga att mercurial är krångligare att använda än subversion, du kan använda exakt samma kommandon och arbetssätt som för svn och inte märka att du har bytt förrän det kommer till att göra uppslag i historiken, då mercurial kommer vara ljusår snabbare. Det som skiljer sig (om man vill jobba som med svn) är att man får två nya kommandon: pull och push som skickar, respektive hämtar data från en server. Alla andra vanlga kommandon: checkin, update, annotate osv kommer kännas likadana, fast snabbare.

Vad jag tror Pedda söker är ett verktyg som har bra integrering med hans befintliga editor (vilken jag gissar är Visual studio), utan att behöva installera massa onödiga verktyg på sidan om (typ cygwin) och som tillåter honom att prova utan att behöva sätta upp en server (remote eller lokalt) för att ta hand om repositoriet samt även lätt kunna migrera till att använda en server vid behov. Då passar, enligt mig, mercurial bäst då det inte kräver cygwin samt har integration med Visual Studio och en hel bunt andra IDEs, är distribuerat (kräver ingen server att jobba mot) och är lätt att sätta upp centralt vid behov.

Jag har desstom mer än en gång fått svn att misslyckas med sina så kallade atomiska operationer, vilket har lämnat min working copy i ett väldigt dåligt skick och tvingat mig att göra cleanups, samma har hänt mig i mercurial men det har alltid varit lättare och gått snabbare att lösa tack vare att jag inte behöver använda en server för att lösa delar av problemet och drabbas av eventuella ändringar som kan ha skett där.

Personligen använder jag både Git och Hg och tittar med fasa tillbaka på den tiden jag tyckte svn var bra.

Medlem sedan mars 20112 inlägg
#7

Skulle vara skoj att höra vad du kommer fram till i slutänden Pedda och vad du tyckte om det verktyg du valde, så glöm inte att återkomma.

@Colione: Först och främst en ursäkt för mitt ordval att Mercurial skulle vara Windowsbaserat. Kanske borde ha valt windowsanpassad istället, eller 'mer lättbegripligt för windowsanvändare'.

Vad det gäller snabbhet mellan svn och hg så må hg vara snabbare, men så länge inte hastigheten upplevs som ett bekymmer så spelar det ju egentligen ingen roll. En formel-1 bil må vara snabbare än en gammal Volvo, men skall man åka och handla mjölk så... Kanske är det som du säger att man vant sig vid att det tar en viss tid, men om jag får vänta 2 sekunder på att plocka fram historik så är det inget jag blir upprörd över. Skulle jag däremot få vänta 30 sek på en incheckning (som kunde vara fallet i VSS), eller för att göra en update så hade det varit irriterande.

Det skulle vara intressant att veta lite mer om den typ av projekt du jobbar med colione, hur många i teamet, om ni sitter tillsammans, vilken plattform och utvecklingsspråk ni använder, om ni har någon byggserver och i så fall vilken etc.

Medlem sedan mars 20007 896 inlägg
#8

Personligen skulle jag inte välja att använda Git i Windows-miljö, just på grund av att man behöver MSysGit/cygwin i grunden.

Mercurial har jag inte testat i Windows-miljö, men enligt colione verkar det ju helt klart som ett alternativ som är vettigt!

Subversion är ju som sagt enkelt att komma igång med, och fungerar i stort sett perfekt på alla plattformar (om du mot förmodan skulle vilja byta ;-)). Med TurtoiseSVN blir det ännu enklare att hantera i Windowsmiljö.

Men TFS som du använder är nog det jag har tyckt bäst om vad gäller integreringen med Visual Studio. Väldigt enkelt att hantera, man får bra överblick och det är sällan problem. Om man har en separat byggserver så har jag dock märkt att vissa checkins fallerar, och den vägrar bygga innan man skickat in allt igen -- men det är ett smärre problem och uppstår (för mig; uppstod) inte ofta.

Frågan är ju dock om TFS verkligen är värt pengarna när du sitter som ensam utvecklare? Efter att ha läst coliones utmärkta inlägg hade jag nog velat testa Mercurial om jag var ensam användare, och om det inte fungerade som jag ville hade jag återgått till Subversion -- som också fungerar väldigt bra med Visual Studio. Fördelen med Git och Mercurial är ju dock att man kan versionshantera utan uppkoppling och checka in när man väl har det. Lokala repon ftw!

Medlem sedan feb. 20002 300 inlägg
#9

Jag har tipsat om det förut men gör det gärna igen. Joel Spolsky har skrivit en mycket bra tutorial för Mercurial som riktar sig speciellt till fd. Subversion-användare. http://hginit.com/

Medlem sedan juni 20014 421 inlägg
#10

aspenryd skrev:

Skulle vara skoj att höra vad du kommer fram till i slutänden Pedda och vad du tyckte om det verktyg du valde, så glöm inte att återkomma.

@Colione: Först och främst en ursäkt för mitt ordval att Mercurial skulle vara Windowsbaserat. Kanske borde ha valt windowsanpassad istället, eller 'mer lättbegripligt för windowsanvändare'.

Vad det gäller snabbhet mellan svn och hg så må hg vara snabbare, men så länge inte hastigheten upplevs som ett bekymmer så spelar det ju egentligen ingen roll. En formel-1 bil må vara snabbare än en gammal Volvo, men skall man åka och handla mjölk så... Kanske är det som du säger att man vant sig vid att det tar en viss tid, men om jag får vänta 2 sekunder på att plocka fram historik så är det inget jag blir upprörd över. Skulle jag däremot få vänta 30 sek på en incheckning (som kunde vara fallet i VSS), eller för att göra en update så hade det varit irriterande.

Det skulle vara intressant att veta lite mer om den typ av projekt du jobbar med colione, hur många i teamet, om ni sitter tillsammans, vilken plattform och utvecklingsspråk ni använder, om ni har någon byggserver och i så fall vilken etc.

2 sekunder känns som en evighet när man har upplevt samma kommando på några millisekunder. :)
Senaste projektet jag var i var vi 7 personer som core-utvecklare och ~20 som checkade in från och till, vi byggde mest scala men en del perl spritt på diverse unix (linux, solaris, mac) och windows. Byggserver körde vi hudson, resten av verktygen var från atlassian, IDE varierade mellan VS, eclipse och netbeans, fanns även vissa emacs och vim:are. Vi hade även i princip all öppen källkod-mjukvara från Red Hat i ytterligare ett repository, med våra patchar, samt extremt mycket tredjepartsmjukvara som kunder och vi behövde. Vårt cmdb (det i scala och perl) krävde att vi byggde om alla paket från source eller paketerade om binärerna (inte det bästa arkitektoniska beslutet, i tell you). Det problemet vi stötte på med mercurial var att python tuggade upp allt minne och lade sig på rygg vid konvertering från cvs till hg (löstes med mer minne på konverteringsmaskinen), men åh andra sidan bör man tänka om hur sina stora källkodsarkiv (vårt var på 6G) ser ut när man versionahntear changesets och inte filer. Konverteringen borde istället ha skett stegvis, vid behov, till ett separat repository per programvara. Man tappar ju en del information som finns i cvs speciellt taggar är problematiskt samt att delar av repositoriet kan vara trasigt utan att man vet om det för än man utför någon esoterisk uppgift på just den delen (ja, jag hatar cvs).

Medlem sedan maj 20011 826 inlägg
#11

Först måste jag säga att jag inte har använt Git jättemycket, men under den period jag har använt Git så har det fungerat väldigt bra.

MSys är inte cygwin. MSys är ett alternativ till cygwin, som enligt min erfarenhet är otroligt mycket smidigare. Men installerar man Git for Windows på Windows så behöver man inte installera nåt annat än Git, om man så vill.

Jag tycker att Git är väldigt enkelt att jobba med, dessutom är det väldigt snabbt eftersom det mesta görs på den lokala datorn (liknande Mercurial) och man är alltså inte beroende av en server. Allt är sparat på lokala datorn och man väljer själv när man vill pusha eller hämta nya uppdateringar från en annan dator eller server. Både Mercurial och Git är distribuerade på det sättet.

Why Git is Better than X - Everything is Local beskriver ganska bra vilka kommandon som arbetar lokalt och vilka som arbetar mot en server.

Se även Git for Windows

Medlem sedan aug. 201035 inlägg
#12

Det finns också Sourcegear Vault för mindre team. Jag är ensam på jobbet att använda TFS och det funkar rätt så bra =) Privat kör jag med Tortoise SVN, men det är mer för open-source lösningar, vad jag vet.

270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)