Iako su Subversion (SVN) skladišta slična Git spremištima, razlika između njih je prilično suptilna. Oba su najpopularnija sustava kontrole inačica koja se koriste za praćenje promjena izvornog koda tijekom vremena, ali imaju svoj udio razlika u arhitekturi. Mogu raditi slične stvari poput označavanja i grananja, ali se dramatično razlikuju u načinu pohrane stvari. Git je besplatni i open-source sustav kontrole verzija distribuiran pod licencom GNU-a, dok je SVN centralizirani sustav kontrole verzija distribuiran pod licencom open-source. Ovaj članak ističe neke ključne razlike između to dvoje.
U početku kreiran za razvoj Linux kernela Linus Torvalds koristeći vlasnički DVCS zvan BitKeeper, Git je uveo novu razinu kolaborativnog kodiranja među zajednicom programera. Git je jedan od najpopularnijih alata koji se koristi u gotovo tisućama projekata, a usvojili su ga milijuni programera širom svijeta. To je distribuirani sustav kontrole verzija dizajniran za evidentiranje promjena izvornog koda tijekom vremena održavanjem posebne vrste baze podataka koja se zove lokalno spremište, a to je točan klon središnjeg spremišta koji korisnicima omogućuje pohranjivanje i trenutne i prethodne povijesti verzija datoteke u njihovim lokalnim strojevima. Glavna prednost Gita je u tome što on ne ovisi o pristupu mreži za svoje operacije što osigurava integritet sadržaja.
Subverzija ili SVN je besplatni i otvoreni izvorni sustav kontrole inačica koji se koristi za upravljanje i pohranjivanje datoteka i promjena koje su tijekom njih izvršavane na središnjem poslužitelju. Distribuira se pod licencom Apachea kao otvoreni izvor. Osnovao ga CollabNet 2000. godine, SVN postoji već više od desetljeća i nastavlja s uživanjem u širokom prihvaćanju kao uspješan VCS alat kako u zajednici otvorenog koda, tako i u korporativnom ekosustavu. Za razliku od Gita, SVN pohranjuje povijesti verzija datoteka na centralizirani poslužitelj. To stvara grane u središnjem spremištu koje su postavljene kao mape. Kad korisnik želi izvršiti promjene u kodu, to čine na vlastitim strojevima, a kad završe, kôd guraju natrag u središnje spremište.
Iako su oba najpopularnija softvera za sustav kontrole verzija otvorenog koda koji se koriste za praćenje promjena izvornog koda tijekom vremena, vrlo se razlikuju jedan od drugog. Git je distribuirani sustav kontrole verzija koji koristi distribuirani sustav za katalogiziranje svih verzija projektne datoteke. Subversion (svn), s druge strane, je centralizirani sustav za nadzor verzija i revizije distribuiran pod licencom open-source.
Git je distribuirani sustav kontrole verzija, što znači da umjesto centraliziranog poslužitelja za pohranu i upravljanje izvornim kodom stvara lokalno spremište koje nije ništa drugo do klon središnjeg spremišta koje programerima omogućuje lokalno mijenjanje cijele stvari. Lokalno spremište sastoji se od svega, od povijesti verzija do grana do metapodataka, svega. S druge strane, kada se programeri obvezaju na subverziju, sve promjene vraćaju u središnje spremište.
Kada korisnici pregledaju spremište u Gitu, dobivaju potpuni klon cijele stvari pohranjene na njihovim lokalnim računalima. Moraju ih "gurnuti" promjene unesene u kôd kako bi ga podijelili s drugim korisnicima ili "povući" da bi ga sinkronizirali s udaljenim spremištem. Ovo olakšava suradnju više korisnika bez ometanja središnjeg spremišta. U subverziji, svaki korisnik dijeli isto središnje skladište putem grananja.
Git najmanje ovisi o pristupu mreži jer je većina njegovih operacija dostupna izvanmrežno. Korisnici mogu izvesti spajanje, ponovno postavljanje i grananje bez brige o pristupu mreži. Međutim, mreža je potrebna samo kada korisnici trebaju sinkronizirati svoje lokalno spremište sa središnjim spremištem. Subverzija, s druge strane, zahtijeva pristup mreži za većinu svojih operacija jer nema lokalno spremište za pohranu promjena lokalno.
Sve u Gitu je kriptografski provjereno zbranjeno pomoću SHA-1 hash algoritma prije nego što se pohrani što osigurava robusnost sadržaja koda. Praktično je nemoguće promijeniti sadržaj koda bez da Git za to zna. Subverzija, naprotiv, nema raspršene sadržaje što znači da ne jamči integritet sadržaja u slučaju kvara mreže ili diska. Git je nesumnjivo bolja alternativa kada je u pitanju integritet sadržaja.
Git je nesumnjivo jedan od najpopularnijih i široko korištenih dostupnih upravljačkih sustava koji je posebno dizajniran za rukovanje svim, od malih do velikih projekata. To je open-source distribuirani sustav kontrole verzija koji se koristi za spremanje i održavanje promjena izvornog koda tijekom vremena u lokalnom spremištu, a to je samo klon središnjeg spremišta. SVN je i sustav kontrole verzija koji se koristi u osnovi iste svrhe, s izuzetkom načina pohrane stvari. Za razliku od Gita, SVN koristi centralizirani poslužitelj za održavanje trenutne i prethodne verzije datoteka poput izvornog koda, dokumentacije, web stranica itd. Jedna velika prednost koju Git ima nad SVN-om je ta što korisnici Gita mogu imati kontrolu verzije bez brige o mreži. pristup koji je u SVN malo vjerovatno.