it-swarm-eu.dev

git pro osobní (one-man) projekty. Přezbrojení?

Znám a používám dva systémy řízení verzí: Subversion a git. Subversion se od nynějška používá pro osobní projekty, kde jsem jediný vývojář, a git se používá pro open source projekty a projekty, kde věřím, že na projektu budou také pracovat ostatní. Je to hlavně kvůli úžasným schopnostem společnosti Git rozvětvovat a slučovat, kde každý může pracovat na své vlastní větvi; velmi šikovný.

Nyní používám Subversion pro osobní projekty, protože si myslím, že git tam nemá žádný smysl. Zdá se, že je to trochu nadměrné. Je mi v pořádku, pokud je centralizovaný (obvykle na domovském serveru), když jsem jediný vývojář; Každopádně mám pravidelné zálohy. Nepotřebuji schopnost vytvořit si vlastní větev, hlavní větev je moje větev. Ano, SVN má jednoduchou podporu pro větvení, ale mnohem silnější podpora pro to nemá smysl, myslím. Sloučení může být bolest s ní, nebo alespoň z mé malé zkušenosti.

Existuje nějaký dobrý důvod, proč používat git na osobní projekty, nebo je to prostě nadměrné?

87
Anto

Není nadměrná. Hlavním důvodem, proč jsem začal používat Git a Mercurial over Subversion pro osobní projekty, je to, že zahájení úložiště je mnohem jednodušší.

Chceš začít nový projekt?

> git init

BAM! Není třeba nastavovat server úložiště ani kontrolovat strukturu složek pro podporu větvení a značek do úložiště Subversion.

Sdílení projektu později je jen otázkou: git Push (jiné než mít vzdálené úložiště). Zkuste to rychle udělat pomocí Subversion!

157
Spoike

Řekl bych, že použití Subversion pro místní osobní projekty je nadměrné, zatímco Git rozhodně ne. Git zabere méně místa (z důvodu neefektivního konceptu „revizí“ SVN oproti snímkům objektů Git), vyžaduje méně nastavení (git init versus tucet příkazů svnadmin a nastavení oprávnění atd.), je snadnější zálohovat (git clone --bare [nebo git Push Origin pokud používáte Github nebo podobné] a máte hotovo) a má lepší nástroje pro správu kódu (větvení je zdarma a sloučení je jednodušší a čistší). To, že nikdo jiný nemá klon vašeho úložiště, neznamená, že výhody jakéhokoli DVCS jsou „nadměrné“.

Dále bych řekl, že Gitova podpora větvení je méně komplexní než SVN, s většími odměnami.

46
greyfade

Myslet si, že nikdy nebudeš větev vlastního kódu, je trochu krátkozraké. Několikrát jsem rozvětvil svůj vlastní kód, zvláště když jsem experimentoval s novým přístupem, o kterém jsem ještě nebyl zcela přesvědčen. Nakonec budete chtít tuto funkci.

Toto přichází od dlouhodobého uživatele Subversion. Konsolidace na jednom nástroji může skutečně pomoci usnadnit váš život.

34
Berin Loritsch

Overkill je vyhrazen pro případ, že dojde k poškození způsobenému „řešením“. Používání zbraně k zabití mouchy znamená poškození způsobené tím, že kulka jde kamkoli jinam. Je to zbytečné. Používání něčeho silnějšího, než je nezbytné, který nezpůsobuje problém, není nadměrné a může to být dobrá věc, pokud vám to pomůže zefektivnit proces vývoje. Nezpůsobuje to žádné škody a umožňuje vám aktualizovat pouze jednu sadu softwaru místo dvou. Tak proč se obtěžovat dvěma systémy místo jednoho?

9
stonemetal

Používám Git pro své projekty pro jednoho člověka a miluji ho. Dříve jsem používal Subversion a ještě jsem neviděl nevýhodu používání Gitu. Je to silnější, ale nikoli způsobem, který komplikuje jednoduché věci. Dělat jednoduché věci zbytečně komplikované/drahé/pomalé/atd. je IMHO nezbytnou podmínkou pro volání něčeho přílišného. Také na Githubu jsem vidlil dříve projekty jednoho člověka, abych přidal funkci, kterou jsem chtěl, a pak jsem jim poslal žádosti o vyžádání. Považuji to za docela cool, kdyby někdo, kdo se zajímal o mé projekty, udělal totéž.

7
dsimcha

nikdy používal ovládání zdroje na osobních projektech před DVCS, takže je trochu divné si představit někoho, kdo má opačný názor. Některé z mých důvodů jsou:

  • Snadné nastavení a roztržení. Například kolega mi minulý týden dal programovací puzzle, které jsem vyřešil v několika malých krocích. Udělal jsem git repo, které trvalo po dobu 45 minut, abych udržel svou práci, a pak to bylo pryč. Nevím, jak snadné je něco podobného v Subversion, ale nikdy jsem neslyšel, že by to někdo udělal.
  • Odpojeno. Pro mě je práce v režimu offline pro hobby projekt mnohem výhodnější než pro práci. Nemusím strkat díru do mého domácího firewallu nebo hostit projekt veřejně. Dokážu dočasně dát repo na jednotku palce nebo notebook a stále udržovat vše v synchronizaci.
  • Všechno zabarvené. Společné propojení repo a pracovního stromu usnadňuje sledování malých projektů během věcí, jako jsou aktualizace operačního systému.
  • Výkonné funkce. Jistě, moc nepotřebuji po celou dobu, ale je to tam, když ji potřebuji, a když nebudu, nespotřebovává žádné zdroje.
7
Karl Bielefeldt

To mi bylo řečeno git-bisect je opravdu hezké pro nalezení přesného odevzdání, které zavedlo dané chování, procházením tam a zpět v potvrzování v závislosti na vašem zadání.

Ty bude to musíš někdy udělat pro věci, které prostě nedokážeš zjistit, co se stalo.


ÚPRAVA: Také schopnost větvení je velmi důležitá, pokud musíte dělat opravy chyb ve starých verzích, které zákazníci používají. Musíte být schopni zvládnout „jen opravit tuto drobnou věc, ale nechci nejnovější verzi, protože ji už nechci znovu otestovat“.

6
user1249

Záleží na tom, jak vážně chcete získat informace o verzích vlastního kódu. Pokud stavíte například jednoduchou knihovnu, která bude mít vždy aktuální verzi (nebo pokud je to pravda), osobně bych použil pouze základní zálohu, jako je Dropbox. Pokud ztratíte veškerý kód, můžete jej obnovit z webu a Dropbox má zálohu 30denní verze, pokud opravdu děláte něco hloupého.

Pokud však například potřebujete udržovat větve Production a Dev, pak je git absolutně skvělý nástroj - a sakra mnohem rychlejší než svn. Nezapomeňte však na riziko selhání pevného disku, pokud data ukládáte pouze lokálně.

2
Chris Moschini

Vždy jsem vždy používal systém pro správu verzí pro jakýkoli druh vývojového projektu. Velké nebo malé opravdu nezáleží. Ať už hraju doma s nějakou novou technologií, píšu malého pomocníka, který mi ulehčí život, nebo se profesionálně rozvíjím ve velkém a distribuovaném týmu - vždycky bych chtěl, aby mě podpořil systém řízení verzí.

Jistě, většinu času pro malé osobní projekty nebudete používat většinu funkcí, ale nastavení úložiště git (nebo dokonce místního úložiště Subversion) není žádný velký problém, tak jděte na to! A než to budete vědět, budete chtít vědět „sakra, jaký byl obsah souboru X minulý pátek?“. Bez kontroly verzí - hodně štěstí ;-)

Takže opravdu nezáleží na tom, jestli používáte git nebo SVN - osobně začínám migrovat stále více a více věcí ze SVN na git, ale hlavní věcí je používat ovládání verzí vůbec - i pro malé věci.

2
perdian

Jen proto, že to nikdo nezmínil: pro osobní projekty je darcs opravdu dobrý a méně zapojený než git pro přímou kontrolu verzí. Není to tak rychlé pro větší projekty, ale pak ani Subversion!

1
wlangstroth

Může to být silný posun duševního paradigmatu, abychom pochopili, že to, co děláme, je experimentování. Mít levný/snadný nástroj, který to podporuje, zvyšuje vaši schopnost postupovat kupředu, částečně proto, že zvyšuje vaši schopnost ustoupit od jakéhokoli experimentu, když se ukáže, že je špatný.

Mnoho vývojářů říká: No, jen si dělám kopie svého kódu. Tyto kopie se však obtížně spravují a nakonec jsou nepořádkem. Máte více kopií a nemůžete si vzpomenout, která kopie za co a pak se pokuste přijít na to, kdy je bezpečné je smazat.

To vše se stává ještě cennějším, když experiment vyžaduje koordinované změny napříč více soubory. A když se jedná o sólo pfoject, používání Git se stává ještě jednodušší.

Místo toho, abych přemýšlel, jestli bych to měl použít na sólový projekt, teď si myslím, jakou škoda jsem to dříve nezjistil.

0
WarrenT