Mens Subversion (SVN) depoter ligner Git repositories, er forskellen mellem de to ganske subtil. Begge er de to mest populære versionskontrolsystemer, der bruges til at spore ændringer i kildekoden over tid, men de har deres retmæssige andel af forskelle med hensyn til arkitektur. De kan gøre lignende ting som tagging og forgrening, men de adskiller sig dramatisk i, hvordan de gemmer ting. Git er et gratis og open-source versionskontrolsystem distribueret under licensen af GNU, mens SVN er et centraliseret versionskontrolsystem distribueret under open source-licensen. Denne artikel fremhæver nogle vigtige forskelle mellem de to.
Oprindeligt oprettet til udvikling af Linux-kernen af Linus Torvalds ved hjælp af en proprietær DVCS kaldet BitKeeper, har Git indledt et nyt niveau af samarbejdskodning blandt udviklermiljøet. Git er et af de mest populære værktøjer, der bruges i næsten tusinder af projekter og vedtaget af millioner af udviklere over hele verden. Det er et distribueret versionskontrolsystem designet til at holde oversigt over ændringerne i kildekoden over tid ved at opretholde en speciel slags database kaldet det lokale arkiv, som er den nøjagtige klon i det centrale arkiv, som giver brugerne mulighed for at gemme både nuværende og tidligere version af historien til filer i deres lokale maskiner. Den største fordel ved Git er, at det ikke er afhængig af netværksadgang til dets operationer, hvilket sikrer indholdsintegritet.
Subversion, eller SVN, er et gratis og open-source versionskontrolsystem, der bruges til at administrere og gemme filer, og ændringerne der er foretaget over tid i en centraliseret server. Det distribueres under licens af Apache som open source. Grundlagt af CollabNet i 2000 har SVN eksisteret i over et årti og nyder fortsat udbredt vedtagelse som et vellykket VCS-værktøj i både open source-samfundet og virksomhedens økosystem. I modsætning til Git gemmer SVN versionshistorierne for filer på en centraliseret server. Det skaber grene inde i det centrale oplagringssted, der er stillet som mapper. Når en bruger ønsker at foretage ændringer i koden, gør de det fra deres egne maskiner, og når de er færdige, skubber de koden tilbage til det centrale arkiv.
Mens begge er de to mest populære open-source-version-kontrolsystem-software, der bruges til at holde øje med ændringerne i kildekoden over tid, er de meget forskellige fra hinanden. Git er et distribueret versionskontrolsystem, der bruger et distribueret system til at katalogisere alle versionerne af en projektfil. Subversion (svn) er på den anden side et centraliseret version- og revisionskontrolsystem distribueret under open source-licensen.
Git er et distribueret versionskontrolsystem som betyder snarere end at bruge en centraliseret server til at gemme og administrere kildekoden, det opretter et lokalt arkiv, som ikke er andet end klonen i det centrale depot, som giver udviklere mulighed for at foretage ændringer af det hele lokalt. Det lokale arkiv består af alt fra versionhistorier til grene til metadata, alt. På den anden side, når udviklere forpligter sig til undergravning, sender de alle ændringerne tilbage til det centrale arkiv.
Når brugerne tjekker et lager i Git, får de en komplet klon af det hele, der er gemt på deres lokale maskiner. De er nødt til at "skubbe" ændringerne foretaget til koden for at dele den med andre brugere, eller "trække" for at synkronisere den med et fjernlager. Dette gør det nemt for flere brugere at samarbejde uden at forstyrre det centrale arkiv. I undergravning deler hver bruger den samme centrale opbevaring via forgrening.
Git er den mindst pålidelige af netværksadgang, da de fleste af dens operationer er tilgængelige offline. Brugere kan udføre fusion, rebase og forgrening uden engang at bekymre sig om netværksadgang. Netværk er dog kun påkrævet, når brugere har brug for at synkronisere deres lokale depot med det centrale depot. Undergravning på den anden side kræver netværksadgang til de fleste af sine operationer, fordi det ikke har noget lokalt arkiv til at gemme ændringerne lokalt.
Alt i Git kryptografisk kontrolleres ved hjælp af SHA-1-hash-algoritmen, før det gemmes, hvilket sikrer robustheden af kodens indhold. Det gør det næsten umuligt at ændre indholdet af koden uden at Git kender det. Tværtimod har tværtimod ikke hashet indhold, hvilket betyder, at det ikke garanterer indholdsintegritet i tilfælde af netværks- eller diskfejl. Git er uden tvivl det bedre alternativ, når det kommer til indholdsintegritet.
Git er uden tvivl et af de mest populære og mest anvendte versionskontrolsystemer til rådighed, der er specielt designet til at håndtere alt fra små til store projekter. Det er et open source distribueret versionskontrolsystem, der bruges til at gemme og vedligeholde ændringer i kildekoden over tid i et lokalt depot, som ikke er andet end klonen i det centrale depot. SVN er også et versionskontrolsystem, der bruges til stort set det samme formål med undtagelse af, hvordan de gemmer ting. I modsætning til Git bruger SVN en centraliseret server til at vedligeholde aktuelle og tidligere versioner af filer såsom kildekode, dokumentation, websider osv. En stor fordel, Git har over SVN, er, at Git-brugere kan have versionskontrollen uden selv at bekymre sig om netværk adgang, som er meget usandsynlig i SVN.