Proč je Git lepší než Subversion?

hlasů
393

Byl jsem pomocí Subversion po dobu několika let a po použití SourceSafe , já prostě miluju Subversion. V kombinaci s TortoiseSVN , neumím si představit, jak by to mohlo být lepší.

Zatím tam je rostoucí počet vývojářů tvrzením, že Subversion má problémy a že bychom měli být stěhování do nové plemeno distribuovaných systémů pro správu verzí, jako Git .

Jak se Git vylepšit Subversion?

Položena 03/08/2008 v 23:38
zdroj uživatelem
V jiných jazycích...                            


30 odpovědí

hlasů
548

Git není lepší než Subversion. Ale také není horší. Je to rozdílné.

Klíčovým rozdílem je, že je decentralizovaný. Představte si, že jste vývojář na silnici, budete rozvíjet na svém notebooku a chcete mít kontrolu zdroj, takže se můžete vrátit 3 hodiny.

Subversion, máte Problém: SVN Repository může být na místě, nemůžete dosáhnout (ve vaší firmě, a nemáte připojení k internetu v tuto chvíli), nelze dopustit. Chcete-li vytvořit kopii svého kódu, budete muset doslova kopírovat / vložit.

Git, nemáte tento problém. Místní kopie je úložiště a můžete zavázat a získat všechny výhody řízení zdrojů. Když se znovu připojení do hlavního úložiště, můžete dopustit proti němu.

To vypadá dobře na první pohled, ale jen mějte na paměti přidanou složitost tohoto přístupu.

Git se zdá být „nový, lesklý, cool“ věc. Je to v žádném případě špatné (tam je důvod, Linus to napsal pro vývoj Linux Kernel po všem), ale mám pocit, že mnoho lidí skok na „Distributed Source Control“ vlaku jen proto, že je nový a je zapsán Linus Torvalds, aniž by ve skutečnosti věděl, proč / když je to lepší.

Subversion má problémy, ale stejně tak Git, Mercurial, životopisy TFS nebo cokoliv jiného.

Edit: Tak tahle odpověď je nyní rok stará a stále generuje mnoho upvotes, tak jsem si myslel Přidám nějaké další vysvětlení. V posledním roce od psaní tohoto, Git získal značnou dynamiku a podporu, zejména proto, že lokalit, jako je GitHub skutečně vzlétl. Já používám jak Git a Subversion v dnešní době a rád bych sdílet některé osobní pohled.

Za prvé, Git může být opravdu matoucí na první pohled při práci decentralizované. Co je vzdálený? a jak správně nastavit výchozí úložiště? jsou dvě otázky, které přicházejí na počátku, a to zejména ve srovnání s svn prostou „svnadmin vytvořit“ Git je „git init“ může trvat parametry --bare a --shared který se zdá být „správný“ způsob, jak nastavit centralizovaný úložiště. Existují důvody pro to, ale přidává složitost. Dokumentace příkazu „pokladny“, je velmi matoucí pro lidi, které přecházejí - za „správný“ způsob, jak se zdá být „git clone“, zatímco „git checkout“ Zdá se, že přepínání větví.

Git opravdu svítí, když jsou decentralizované. Mám server doma a přenosný počítač na cestách, a SVN prostě nefunguje dobře. S SVN, nemohu mít místní ovládání zdroje, pokud nejsem připojen k úložišti (Ano, vím o SVK či o způsobech, jak kopírovat repo). Git, to je vlastně výchozí režim. Je to zvláštní příkaz když (git commit zavazuje lokálně, zatímco git master tlačit původ tlačí hlavní větev do vzdáleného názvem „původu“).

Jak je uvedeno výše: Git přidává složitost. Dva způsoby vytváření úložišť, placení vs. klonu, zavázat vs. stisk ... Musíte vědět, které příkazy pracovat lokálně a které pracují s „server“ (já jsem za předpokladu, že většina lidí stále jako centrální „master-úložišti“ ).

Také nástroje je stále nedostatečná, alespoň na Windows. Ano, tam je Visual Studio AddIn, ale i nadále používat git bash s msysgit.

SVN má tu výhodu, že je to mnohem jednodušší naučit: Je vaše úložiště, všechny změny směrem k němu, pokud víte, jak vytvořit, zavázat a pokladní a jste připraveni jít a může pickup věci, jako je větvení, aktualizovat atd později na.

Git má tu výhodu, že je to mnohem vhodnější, pokud někteří vývojáři nejsou vždy připojeny k hlavnímu úložišti. Také je mnohem rychlejší než SVN. A z toho, co jsem slyšel, větvení a slučování podpory je mnohem lepší (což lze očekávat, protože to jsou hlavní důvody, proč to bylo napsáno).

To také vysvětluje, proč získává tolik brnknout na internetu, jak Git je ideální pro Open Source projekty: Just Fork to, zavázat změny do svého Fork, a pak požádat původní správce projektu vytáhnout změny. Git, to prostě funguje. Opravdu, zkus to na GitHub, je to magie.

To, co jsem vidět je Git-SVN Bridges: Centrální úložiště je Subversion repo, ale vývojáři místně spolupracovat s Git a most pak tlačí jejich změny SVN.

Ale ani s touto zdlouhavou Kromě toho jsem ještě stojí podle mého hlavního poselství: Git není lepší nebo horší, je to prostě jiné. Máte-li potřebu „Offline ovládání zdroje“ a ochotu k strávit nějaký čas navíc to učení, je to fantastické. Ale pokud máte přísně centralizované ovládání zdroje a / nebo se snaží zavést ovládání zdroje v první řadě proto, že vaše spolupracovníci nemají zájem, pak je jednoduchost a vynikající nástroje (alespoň pro Windows) z SVN lesk.

Odpovězeno 03/08/2008 v 23:45
zdroj uživatelem

hlasů
145

Git, můžete udělat prakticky cokoliv v režimu offline, protože každý má své vlastní úložiště.

Tvorba poboček a slučování mezi pobočkami je opravdu snadné.

I v případě, že nemáte dopustit práva pro projekt, stále můžete mít svůj vlastní úložiště online, a publikovat „push žádosti“ pro vaše záplaty. Každý, kdo má rád své záplaty je možné vytáhnout do svého projektu, včetně úředních správců.

Je to triviální vyklopit projektu, upravit ji, a stále sloučení do oprav z oboru hlavou.

Git pracuje pro vývojáře Linuxu. To znamená, že je to opravdu rychle (má být), a váhy do tisíců přispěvatelů. Git také používá méně prostoru (až 30 krát méně prostoru pro Mozilla úložiště).

Git je velmi flexibilní, velmi TIMTOWTDI (K dispozici je více než jeden způsob, jak to udělat). Můžete použít cokoliv workflow chcete, a Git bude jej podporovat.

A konečně, je tu GitHub , skvělé místo pro hostování repozitářů Git.

Nedostatky Gitu:

  • je to mnohem těžší se učit, protože Git má více konceptů a další příkazy.
  • revize nemají čísla verzí jako v podvracení
  • Mnohé příkazy Git jsou kryptické, a chybové zprávy jsou velmi uživatelsky nepřátelský
  • postrádá dobrého GUI (například velké TortoiseSVN )
Odpovězeno 04/08/2008 v 01:24
zdroj uživatelem

hlasů
110

Jiné odpovědi udělali dobrou práci vysvětluje základní funkce Git (které jsou skvělé). Ale je tu také tolik málo způsobů, jak Git chová lépe a pomáhá udržovat můj život víc při smyslech. Zde jsou některé z malých věcí:

  1. Git má ‚čisté‘ příkaz. SVN zoufale potřebuje tento příkaz, zvažuje, jak často to bude výpis další soubory na disku.
  2. Git má příkaz ‚půlit‘. To je hezké.
  3. SVN vytváří .svn adresářů v každé jednotlivé složky (Git vytvoří pouze jednu .git adresář). Každý skript napíšete, a každý grep vy, bude muset být zapsány do ignorovat tyto .svn adresářů. Také je potřeba celý příkaz ( „export svn“) jen proto, aby si zdravou kopii vašich souborů.
  4. V SVN, každý soubor a složka může pocházet z jiného revize nebo pobočky. Zpočátku to zní dobře, aby tuto svobodu. Ale co to vlastně znamená, že tam je milion různých způsobů, jak pro místní pokladny, které mají být zcela posral. (Například v případě, „přepínač svn“ selže v půlce, nebo pokud zadáte příkaz špatně). A nejhorší na tom je: pokud jste někdy dostat do situace, kdy některé z vašich souborů pocházejících z jednoho místa, a některé z nich od druhého, „status svn“ vám řekne, že je vše v pořádku. Budete se muset udělat „svn info“ u každého souboru / adresáře, aby zjistili, jak divné věci. Je-li „status git“ vám řekne, že věci jsou v pořádku, pak se můžete spolehnout, že věci jsou opravdu normální.
  5. Musíš to říct SVN, kdykoli přesunout nebo odstranit něco. Git bude jen na to přijít.
  6. Ignorovat sémantika jsou jednodušší v Gitu. Máte-li ignorovat vzorek (například * .pyc), bude ignorován pro všechny podadresáře. (Ale pokud opravdu chcete ignorovat něco jen jednoho adresáře, můžete). S SVN, zdá se, že neexistuje žádný jednoduchý způsob, jak ignorovat vzorku přes všechny podadresáře.
  7. Další položka zahrnující ignoruje soubory. Git umožňuje mít „soukromé“ ignorovat nastavení (pomocí souboru .git / info / vyloučit), který nebude mít vliv na někoho jiného.
Odpovězeno 26/09/2008 v 01:18
zdroj uživatelem

hlasů
56

Proč je Git lepší než X “ popisuje různé výhody a nevýhody Git vs ostatních SCM.

Krátce:

  • Git sleduje obsah spíše než soubory
  • Větve jsou lehké a slučování je jednoduchá , a tím myslím opravdu snadné .
  • Je distribuován v podstatě každý sklad je pobočkou. Je to mnohem jednodušší vyvíjet souběžně a spolupracovat než se Subversion, podle mého názoru. To také umožňuje v režimu offline rozvoj možný.
  • To neukládá pracovní postup , jak je patrné z výše uvedených propojených webových stránek , existuje mnoho možných pracovních postupů s Git. Pracovní postup Subversion stylu se snadno napodobil.
  • Git repozitáře jsou mnohem menší velikosti souboru než Subversion repozitářích. Je tu jen jedna „.git“ adresář, na rozdíl od desítek „.svn“ úložišť (všimněte si, Subversion 1.7 a vyšší se používá jeden adresář , jako Git.)
  • Staging area je úžasné, to vám umožní vidět změny, které se dopouštějí, spáchat dílčí změny a dělat různé jiné věci.
  • Stashing je neocenitelné, když děláte „chaotické“ vývoj, nebo prostě chtějí opravit chybu, když jste stále ještě pracuje na něčem jiném (na jiné pobočce).
  • Můžete přepsat historii , což je skvělé pro přípravu opravných sad a upevnění své chyby ( před publikováním commity)
  • ... a mnohem více.

Tam jsou některé nevýhody:

  • Není mnoho dobrých GUI pro něj dosud. Je to nová a Subversion byl asi mnohem déle, takže je přirozené, protože existuje několik rozhraní ve vývoji. Některé ty dobré patří TortoiseGit a GitHub for Mac .
  • Dílčí pokladen / klony úložišť není možné v tuto chvíli (Četl jsem, že to je ve vývoji). Nicméně, tam je submodul podporu. Git 1.7+ podporuje řídce pokladny .
  • Mohlo by to být těžší se učit, i když jsem nenašel, že se tento případ (asi před rokem). Git se v poslední době zlepšila své rozhraní a je velmi uživatelsky přívětivý.

Ve většině zjednodušující použití, Subversion a Git jsou skoro stejné. Není velký rozdíl mezi:

svn checkout svn://foo.com/bar bar
cd bar
# edit
svn commit -m "foo"

a

git clone git@github.com:foo/bar.git
cd bar
# edit
git commit -a -m "foo"
git push

Kde Git opravdu svítí je větvení a pracovat s jinými lidmi.

Odpovězeno 10/02/2009 v 05:18
zdroj uživatelem

hlasů
54

Google Tech Talk: Linus Torvalds na git

http://www.youtube.com/watch?v=4XpnKHJAok8

Porovnání stránky GIT Wiki

http://git.or.cz/gitwiki/GitSvnComparsion

Odpovězeno 03/08/2008 v 23:44
zdroj uživatelem

hlasů
26

No, to je distribuován. Srovnávací testy ukazují, že je to mnohem rychlejší (vzhledem ke své distribuované povaze operace, jako je porovnávání a protokoly jsou lokální, takže je to samozřejmě bleskově rychlejší v tomto případě), a pracovní složky jsou menší (který stále fouká mou mysl).

Když pracujete na podvracení nebo jakékoliv jiné formy ovládacího revize klient / server systém, můžete v podstatě vytvořit pracovní kopie na vašem počítači by kontrola-out revizí. To představuje snímek v okamžiku, co úložiště vypadá. Aktualizujete pracovní kopii pomocí aktualizace a aktualizovat úložiště prostřednictvím commitů.

S distribuované řízení s verzí, že nemáte snímek, ale spíše celý codebase. Chci udělat diff s tři měsíce staré verze? Žádný problém, 3 měsíce starý verze je stále v počítači. To neznamená jen věci jsou mnohem rychlejší, ale pokud jste odpojeni od svého centrálního serveru, můžete ještě udělat mnoho operací jste zvyklí. Jinými slovy, to není jen mít přehled o dané revizi, ale celý codebase.

Člověk by si myslel, že Git by zabírají spoustu místa na váš pevný disk, ale z několika měřítek, které jsem viděl, to vlastně trvá méně. Neptejte se mě jak. Myslím, že to bylo postaveno Linus ví, jednu nebo dvě věci o souborových systémů, myslím.

Odpovězeno 03/08/2008 v 23:47
zdroj uživatelem

hlasů
22

Mezi hlavní body, které bych rád o DVCS jsou:

  1. Můžete dopustit rozbité věci. Nezáleží na tom, protože ostatní lidé neuvidí, dokud budete publikovat. Publikovat, když je odlišná od spáchání čas.
  2. Z tohoto důvodu si můžete dopustit mnohem častěji.
  3. Můžete sloučit kompletní functionnality. To functionnality bude mít svou vlastní pobočku. Všechny commitů tohoto odvětví budou v souvislosti s touto functionnality. Můžete to udělat s CVCS avšak s DVCS svou výchozí.
  4. Můžete vyhledávat historii (najít, když funkce změnil)
  5. Můžete vrátit zpět tah, když někdo šroub do hlavního úložiště, nemusíte opravit chyby. Stačí zrušit sloučení.
  6. Když budete potřebovat pro správu verzí do libovolného adresáře dělat: git init. a můžete dopustit, rozepnul změny, atd ...
  7. Je to rychlé (i na Windows)

Hlavním důvodem pro poměrně velký projekt je zlepšená komunikace vytvořené bodu 3. Ostatní jsou pěkné bonusy.

Odpovězeno 04/09/2008 v 12:06
zdroj uživatelem

hlasů
15

Legrační je: hostit I projekty Subversion Repos, ale k nim přistupovat pomocí příkazu git clone.

Přečtěte si prosím Develop Git na projektu Google Code

Přestože Google Code nativně mluví Subversion, můžete snadno používat Git během vývoje. Vyhledání „git svn“ naznačuje, tato praxe je velmi rozšířená, a my doporučujeme vám experimentovat s ním.

Pomocí Git na SVN mi dává výhody:

  1. Mohu pracovat distribuován na několika strojích, páchání a tahání za do nich
  2. Mám centrální backup/public svn úložiště pro ostatní check out
  3. A oni mají možnost používat Git pro jejich vlastní
Odpovězeno 02/10/2008 v 14:05
zdroj uživatelem

hlasů
11

Všechny odpovědi jsou zde, jak se očekávalo, programátor centric, ale co se stane, pokud vaše společnost používá kontrolu oprav mimo zdrojového kódu? Existuje spousta dokumentů, které nejsou zdrojový kód, který těží z řízení verzí, a měl by žít v blízkosti kódu, a ne v jiném CMS. Většina programátorů nepracují v izolaci - pracujeme pro firmy jako součást týmu.

S tím na mysli, srovnat snadnost použití, a to jak klienta nástroje a školení, mezi Subversion a git. Nemohu vidět situaci, kdy některý je distribuovaný řídicí systém revizí bude jednodušší použít, nebo vysvětlit, non-programátor. Rád bych se mýlil, protože pak bych byl schopen vyhodnotit git a vlastně mít naději na to být přijímány lidmi, kteří potřebují správu verzí, kteří nejsou programátory.

Dokonce i tehdy, pokud je požádán vedením, proč bychom měli přejít od centralizované k distribuované řídicí revize systému, tak bych se těžko dát upřímnou odpověď, protože nepotřebujeme ho.

Prohlášení: Začal jsem se zajímat Subversion brzy (asi v0.29), takže samozřejmě jsem zaujatý, ale firmy jsem pracoval na od té doby těží ze svého nadšení, protože jsem povzbuzovat a podporovat jeho používání. Mám podezření, že to je to, jak se to děje u většiny softwarových společností. S tak mnoho programátorů skákání na git rozjetého vlaku, zajímalo by mě, kolik firem se chystá přijít o výhodách používání řízení verze mimo zdrojového kódu? I když budete mít oddělené systémy pro různé týmy, jste přijdou o některé výhody, jako je například (unifikované) sleduje emisní integrace, a zároveň zvýšit požadavky na údržbu, hardware a školení.

Odpovězeno 13/10/2009 v 08:01
zdroj uživatelem

hlasů
9

Subversion je ještě mnohem více používat systém pro správu verzí, což znamená, že má lepší podporu nástroje. Najdete zralé SVN zásuvné moduly pro téměř každou IDE , a existují dobré rozšíření Explorer k dispozici (jako TurtoiseSVN). Jiné, než to, že budu muset souhlasit s Michaelem : Git není lepší nebo horší než Subversion, je to jiné.

Odpovězeno 18/09/2008 v 19:44
zdroj uživatelem

hlasů
8

David Richards WANdisco Blog na Subversion / GIT

Vznik GIT přinesla s sebou plemeno DVCS fundamentalistů - dále jen ‚Gitterons‘ - to myslet něco jiného, ​​než GIT je blbost. Tyto Gitterons zřejmě myslí, že softwarové inženýrství se děje na jejich vlastním ostrově a často zapomínají, že většina organizací nepoužívají výlučně vedoucích softwarových inženýrů. To je v pořádku, ale to není, jak se zbytek trhu si myslí, a já jsem rád, že to dokázal: GIT, v posledním pohledem měl méně než tři procenta na trhu a zároveň Subversion má v regionu pět milionů uživatelů a asi v polovině celkový trh.

Problém jsme viděli, bylo to, že Gitterons pálili (levné) záběry na Subversion. Tweety jako „Subversion je tak [pomalá / ubohý / restriktivní / nevoní / dívá se na mě v zábavnou formou] a teď mám GIT a [vše funguje v mém životě / moje žena otěhotněla / Mám přítelkyni po 30 let pokouší / jsem vyhrál šestkrát běží na stůl blackjack]. Dostanete obrázek.

Odpovězeno 17/09/2010 v 19:22
zdroj uživatelem

hlasů
8

Jedna z věcí, o podvracení, který mě irks je to, že dává své vlastní složky v každém adresáři projektu, zatímco git klade jako jediný v kořenovém adresáři. Není to tak , že velký problém, ale jen málo věcí, jako že se sčítají.

Samozřejmě, Subversion má želva, která je [zpravidla] velmi pěkné.

Odpovězeno 22/08/2008 v 16:24
zdroj uživatelem

hlasů
7

Git také dělá větvení a slučování rychlé. Subversion 1.5 právě přidali sledování korespondence, ale Git je ještě lepší. S Git větvení je velmi rychlá a levná. To umožňuje vytvářet pobočky pro každou novou funkci více proveditelné. Jo a Git repozitáře jsou velmi efektivní s úložným prostorem ve srovnání s Subversion.

Odpovězeno 09/08/2008 v 04:22
zdroj uživatelem

hlasů
6

Easy Git má pěknou stránku porovnávající skutečné využití Git a SVN který vám poskytne představu o tom, jaké věci Git může dělat (nebo dělat snadněji) ve srovnání s SVN. (Technicky vzato, je to založeno na Easy Git, který je lehký obal na vrcholu Git.)

Odpovězeno 22/08/2008 v 16:19
zdroj uživatelem

hlasů
6

Je to všechno o snadnost používání / kroků potřebných k tomu něco.

Když jsem vyvíjet jediný projekt na mém PC / notebook, git je lepší, protože je mnohem snazší nastavení a používání. Nepotřebujete server a nemusíte držet zadáním adresu URL úložiště, když děláte sloučení.

Kdyby to bylo jen 2 lidi, řekl bych, že git je také snazší, protože stačí stisknout a vytáhnout z vnoci.

Jakmile se dostanete mimo to i když, já bych šel za podvracení republiky, protože v tomto bodě je třeba nastavit ‚vyhrazené‘, server nebo umístění.

to stejně dobře s git můžete dělat, co s SVN, ale výhody git dostat převážen potřebou dělat další kroky synchronizovat s centrálním serverem. V SVN stačí spáchat. V git máte git commit, pak git tlak. Dodatečný krok dostane nepříjemné, prostě proto, že můžete skončit dělat to tolik.

SVN má také výhodu lepší GUI nástrojů, avšak git ekosystém se zdá být dohání rychle, takže bych se starat o to v dlouhodobém horizontu.

Odpovězeno 04/08/2008 v 00:38
zdroj uživatelem

hlasů
5

Mám rád Git, protože to skutečně pomáhá komunikační developer developer na střední až velké tým. Jako distribuovaný systém pro správu verzí, a to prostřednictvím Push / Pull systém, pomáhá vývojářům vytvářet zdrojový kód eko-systém, který pomáhá zvládat velký bazén vývojářů pracujících na jednom projektu.

Například říkají, věříte 5 vývojářům a jen vytáhnout kódy z jejich úložiště. Každá z těchto vývojářů má své vlastní důvěryhodnosti sítě, odkud oni vytáhnout kódů. Tak rozvoj je založen na tom důvěry struktury vývojářů, kde je odpovědnost kód sdílený mezi vývojářské komunity.

Samozřejmě existují i ​​jiné výhody, které jsou uvedeny v další odpovědi zde.

Odpovězeno 05/10/2008 v 17:52
zdroj uživatelem

hlasů
5

Git a DVCS obecně je ideální pro vývojáře dělá hodně kódování nezávisle na sobě, protože každý má svou vlastní pobočku. Pokud potřebujete změnu od někoho jiného, ​​i když ona musí zavázat k její místní repo a pak se musí tlačit, že changeset pro vás, nebo je nutné ji vytáhnout z ní.

Můj vlastní úvahy také dělá mě myslet DVCS dělá věci těžší pro QA a uvolní řízení, pokud si dělat věci, jako centralizovaných vydáních. Někdo musí být odpovědný za to, že push / pull od každého jiného úložiště, řešení případných konfliktů, které by byly vyřešeny v počáteční commit čas dříve, pak dělá stavět, a pak mají všechny ostatní vývojáře re-sync jejich repo operace.

To vše lze řešit s lidskými procesy, samozřejmě; DVCS právě zlomil něco, co byl vyřešen prostřednictvím centralizovaného řízení verzí s cílem poskytnout některé nové vymoženosti.

Odpovězeno 04/08/2008 v 00:08
zdroj uživatelem

hlasů
4

Myslím si, že Subversion je v pořádku .. dokud začnete slučování .. nebo dělat nic složitého .. nebo dělat nic Subversion si myslí, že je komplikované (jako dělat dotazů zjistit, které větve se zapletl do určitého souboru, jestliže dojde ke změně ve skutečnosti pochází, detekčního kopie a pasty , atd)...

Nesouhlasím s vítěznou odpověď s tím, že hlavním přínosem GIT je offline práce - to je jistě užitečné, ale je to spíš navíc pro můj případ použití. SVK může pracovat v režimu offline taky ještě není otázka pro mě, který z nich investovat svůj čas učení in).

Je to jen, že je to neuvěřitelně silný a rychlý a dobře -po zvyknout pojmů - velmi užitečné (ano, v tomto smyslu: user friendly).

Pro více informací o slučování příběhu vidět toto: Použití git-svn (nebo podobné) * jen * pomoct s sloučení svn?

Odpovězeno 27/07/2010 v 16:40
zdroj uživatelem

hlasů
4

Několik odpovědí jste zmínil ty, ale já chci, aby se 2 body explicitní:

1) schopnost provádět selektivní transakce (například git add --patch). Pokud váš pracovní adresář obsahuje několik změn, které nejsou součástí stejné logické změny, Git je velmi snadné, aby se zavazují, že obsahuje pouze část těchto změn. Subversion, je to těžké.

2) Schopnost zavázat, aniž by změnu veřejnost. V Subversion, jakýkoliv zavázat se okamžitě veřejnost, a tudíž neodvolatelné. To značně omezuje schopnost developera „spáchat brzy, spáchat často“.

Git je více než jen VCS; je to také nástroj pro vývoj záplaty. Subversion je pouze VCS.

Odpovězeno 07/08/2009 v 15:59
zdroj uživatelem

hlasů
3

To je špatná otázka se ptát. Je to všechno až příliš snadné se soustředit na bradavice GIT a formulovat argument o tom, proč podvracení je údajně lepší, alespoň v některých případech použití. Skutečnost, že git byl původně navržen jako low-level kontroly verzí stavební zapadla a má barokní linux-developer-orientované rozhraní usnadňuje svaté války získat trakci a vnímanou legitimitu. Git zastánci bang bubnem s miliony workflow výhody, které Slov lidi vyhlásit zbytečné. Velice brzy celá debata je koncipován jako centralizovaná vs. distribuované, který slouží zájmům komunity firmě svn nástroje. Tyto společnosti, které obvykle uhasit nejpřesvědčivější články o nadřazenosti podvracení je v podniku, jsou závislé na vnímané nejistoty git a podnikové připravenost svn pro dlouhodobý úspěch svých produktů.

Ale tady je ten problém: Subversion je architektonický dead-end .

Vzhledem k tomu si můžete vzít git a vybudovat centralizovaný výměna podvracení docela snadno, i když je kolem více než dvakrát tak dlouho svn nikdy nebyl schopen dostat ani základní korespondence-tracking pracovat někde poblíž, stejně jako to dělá v gitu. Jedním ze základních Důvodem je rozhodnutí o designu, aby větve stejně jako adresáře. Nevím, proč šli tudy původně, to určitě je částečné checkouts velmi jednoduché. Bohužel to také znemožňuje, aby řádně sledovat historii. Nyní zřejmě jste měl použít Subversion konvence rozvržení úložiště oddělovat větve od běžných adresářů, a svn používá některé heuristiky, aby se věci pracovat pro případy každodenní použití. Ale to všechno je jen tapetování přes rozhodnutí velmi chudou a omezení návrhu na nízké úrovni. Být schopen A do úložiště ručiček diff (spíše než adresář-moudrý diferenciálu) je základní a zásadní funkce pro správu verzí systému a výrazně zjednodušuje vnitřní části, takže je možné budovat chytřejší a užitečné funkce na vrcholu. Můžete vidět na množství úsilí, které bylo uvedeno do probíhající podvracení, a přesto, jak daleko za ním je ze současné úrody moderních VCSes z hlediska základních operací, jako je rozlišení korespondence.

A teď tady je mé srdce, plsť a agnostik rada pro každého, kdo stále věří Subversion je dost dobré v blízké budoucnosti:

Subversion nikdy dohnat novějších plemen VCSes, že se poučili z chyb RCS a CVS; jedná se o technický nemožné, pokud vybavit model úložiště od základů, ale pak by to být opravdu svn by to? Bez ohledu na to, kolik si myslíte, že nemáte schopnosti moderní VCS, vaše neznalost vás nebude chránit před Subversion má úskalí, z nichž mnohé jsou situace, které jsou nemožné nebo snadno vyřešit v jiných systémech.

To je extrémně vzácné, že technická méněcennosti řešení je tak jednoznačné, jak je to s svn, určitě bych nikdy uvést takové stanovisko o win-vs-linux nebo emacs-vs-vi, ale v tomto případě je to tak clearcut a zdroj ovládání je tak základním nástrojem v arzenálu developera, že mám pocit, že je třeba konstatovat, jednoznačně. Bez ohledu na požadavek používat svn z organizačních důvodů, zapřísahám všechny svn uživatelům nenechat své logické myšlení postavit falešnou víru, že modernější VCSes jsou vhodné pouze pro velké open-source projektů. Bez ohledu na povahu své vývojové práce, pokud jste programátor, budete efektivnější programátor, pokud se naučíte, jak používat lépe navržených VCSes, ať už je to Git, Mercurial, Darcs, nebo mnoho dalších.

Odpovězeno 29/05/2011 v 18:30
zdroj uživatelem

hlasů
3

I naprosto milují budou moci spravovat lokální pobočky svého zdrojového kódu v Gitu bez kalí do vody z centrálního úložiště. V mnoha případech budu pokladny kód z SVN serveru a spustit lokální repozitář jen proto, aby bylo možné to udělat. Je to také skvělé, že inicializace repozitář neznečišťuje souborový systém s partou otravné .svn složek všude.

A pokud jde o podporu nástroje Windows TortoiseGit zvládá základy velmi dobře, ale já stále dávají přednost příkazového řádku, pokud chci zobrazit protokol. Moc se mi líbí, jak želva {Git | SVN} pomáhá při čtení dopustit protokolů.

Odpovězeno 10/02/2010 v 23:54
zdroj uživatelem

hlasů
3

Díky tomu, že není třeba pro komunikaci s centrálním serverem neustále, skoro každý příkaz se spustí za méně než druhé (samozřejmě git push / pull / načtení jsou pomalejší prostě proto, že mají na initalise SSH spojení). Větvení je mnohem mnohem jednodušší (jeden jednoduchý příkaz, který má pobočku, jeden jednoduchý příkaz ke sloučení)

Odpovězeno 30/08/2008 v 13:01
zdroj uživatelem

hlasů
2

Pro lidi, kteří hledají dobrou Git GUI Syntevo SmartGit by mohlo být dobrým řešením. Jeho proprietární, ale zdarma pro nekomerční použití, běží na Windows / Mac / Linux, a dokonce podporuje SVN pomocí nějaké git-svn most, myslím.

Odpovězeno 09/03/2011 v 15:05
zdroj uživatelem

hlasů
2

Eric Sink z SourceGear napsal řadu článků o rozdílech mezi distribuovaných a nondistributed kontrol verze systémů. Ten porovnává výhody a nevýhody z nejpopulárnějších systémů pro správu verzí. Velmi zajímavé čtení.
Články lze nalézt na svém blogu, www.ericsink.com :

Odpovězeno 13/10/2009 v 14:36
zdroj uživatelem

hlasů
2

Subversion je velmi snadné použití. Nikdy jsem našel v posledních letech problém, nebo že něco nefunguje, jak se očekávalo. Také existuje mnoho vynikajících nástroje s grafickým rozhraním a podpora integrace SVN je velký.

Git vám pružnější VCS. Můžete jej použít stejným způsobem jako SVN s dálkovým úložiště, kde si zavázat všechny změny. Ale můžete také použít to hlavně v režimu offline a pouze tlačit změny čas od času do vzdáleného úložiště. Ale Git je složitější a má strmější křivku učení. Ocitl jsem se poprvé dopustí se špatných poboček, vytvářet větve nepřímo nebo se zobrazí chybové hlášení se není moc informací o chybě a kde musím hledat Googlu získat lepší informace. Některé jednoduché věci, jako je nahrazení markerů ($ Id $) nepracuje, ale GIT má velmi flexibilní filtrování a hákový mechanismus sloučit vlastní skripty a tak dostanete všechno, co potřebujete a více, ale potřebuje více času a čtení dokumentů ;)

Pokud pracujete v režimu offline především u svého místního úložiště nemáte záložní kopii, je-li něco, co ztratil na lokálním počítači. S SVN se většinou pracuje s dálkovým úložiště, která je rovněž stejný čas záloha na jiném serveru ... Git může pracovat stejným způsobem, ale to nebylo hlavním cílem Linus mít něco podobného SVN2. Byl navržen pro vývojáře Linuxu a potřebami distribuovaného systému pro správu verzí.

Je Git lepší než SVN? Vývojáři, který potřebuje jen trochu historie verzí a záložní mechanismus mít dobrý a snadný život s SVN. Vývojáři pracují často s větvemi, testování více verzí najednou nebo pracují převážně v režimu offline může těžit z vlastností Gitu. Tam jsou některé velmi užitečné funkce, jako je stashing nebyl nalezen s SVN, které mohou učinit život jednodušší. Ale na druhé straně se ne všichni lidé potřebují ke všem funkcím. Takže nevidím mrtvé SVN.

Git potřebuje nějaký lepší dokumentaci a hlášení chyb, musí být vstřícnější. Také stávající použitelné GUI jsou jen zřídka. Tentokrát jsem našel pouze 1 GUI pro Linux s podporou většiny Git prvků (git-cola). Eclipse integrace funguje, ale to není oficiální vydána a není oficiální aktualizace webu (pouze některé vnější úprava stránky s časopise vychází z kufru http://www.jgit.org/updates ), takže nejvýhodnější způsob, jak používat Git těchto dnech je příkazový řádek.

Odpovězeno 13/10/2009 v 14:14
zdroj uživatelem

hlasů
1

Proto si myslím, Subversion je lepší než Git (alespoň pro projekty I pracují), hlavně kvůli jeho použitelnost a jednodušší pracovní postup:

http://www.databasesandlife.com/why-subversion-is-better-than-git/

Odpovězeno 22/10/2010 v 17:25
zdroj uživatelem

hlasů
1

Byl jsem obydlí v Git zemi v poslední době, a líbí se mi to na osobní projekty, ale já bych neměl být schopen přepnout pracovní projekty, které mu ještě ze Subversion vzhledem ke změně v myšlení požadované od personálu, a to bez žádných lisovacích výhody. Navíc největším projektem narazíme in-house je extrémně závislá na svn: zevnějšku , které z toho, co jsem zatím viděl, nefunguje tak dobře a hladce v Gitu.

Odpovězeno 25/04/2010 v 22:35
zdroj uživatelem

hlasů
1

http://subversion.wandisco.com/component/content/article/1/40.html

Myslím, že je to docela bezpečně říci, že mezi vývojáři se SVN Vs. Git argument byl zuří již delší dobu, přičemž každý má svůj vlastní názor, na které je lepší. To bylo dokonce vychována v otázek během našeho Webový seminář o Subversion v roce 2010 a další léta.

Hyrum Wright, náš ředitel Open Source a předseda pro Subversion Corporation mluví o rozdílech mezi Subversion a Git, spolu s dalšími Distributed Control Systems verze (DVCS).

On také mluví o připravovaných změnách v Subversion, jako je pracovní kopie Next Generation (WC-NG), které podle jeho názoru bude mít větší počet uživatelů Git převést zpět do Subversion.

Máte stráž jeho videa a dejte nám vědět, co si myslíte, že by buď komentuje tomto blogu, nebo vyvěšením na našem fóru. Registrace je jednoduchá a zabere jen chvilku!

Odpovězeno 10/02/2010 v 19:51
zdroj uživatelem

hlasů
1

Git na Windows je teď docela dobře podporován.

Podívejte se na GitExtensions = http://code.google.com/p/gitextensions/

a manuál pro lepší zážitek Windows Git.

Odpovězeno 10/02/2010 v 17:29
zdroj uživatelem

hlasů
1

Za prvé se zdá, že současná regulace verze jako jednoduchý problém vyřešit. Je to vůbec ne. Tak jako tak...

SVN je docela non-intuitivní. Git je ještě horší. [Sarkastický-spekulace] Může to být proto, že vývojáři, že stejně jako těžkých problémů, jako je souběžné správy verzí, nemají moc zájem na tom dobré UI. [/ Sarkastický-spekulace]

SVN fanoušci si myslí, že nepotřebují distribuované verze systému kontroly. Myslel jsem, že taky. Ale teď, že budeme používat výhradně Git, jsem věřící. Nyní správu verzí pracuje pro mě i pro tým / projekt namísto právě pracuje na projektu. Když potřebuju pobočku, I větví. Někdy je to obor, který má odpovídající pobočku na serveru, a někdy ne. Nemluvě o všechny další výhody, které budu muset jít studovat až na (částečně díky tajemný a absurdní nedostatek UI, která je moderní systém pro správu verzí).

Odpovězeno 03/01/2010 v 13:45
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more