Proč bych měl přejít ze SVN na GIT? (vážně)

dustin

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #75 kdy: 31. 07. 2014, 10:47:10 »
Ten název Stash je tedy hodně nešťastný, když jde současně o příkaz gitu


Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #76 kdy: 31. 07. 2014, 10:49:05 »
Tohle je presne ono. Tyden vyvijim feature, mezitim je potreba nejaky opravy na jinych features ktery se delaly drive, nejaky bugfix apod. Vsechno krasne zdokumentovany diky vetvim, pres cherry-pick dokazu bugfixes efektivne a rychle cpat do masteru, stejne tak cherry-pick veci ktery treba prida kolega a navzajem to souvisi. Vsechno dokazu resit lokalne a ven to davat az kdyz to vypada good. V SVN jsem to dokazal tak nejak kocirovat dokud jsem byl uplne sam a delal jen vyvoj samostatne a pak udrzbu samostatne. Ve chvili kdy prisly projekty ktere po spusteni kontinualne pokracuji a je tam v kazdou chvili vic pozadavku na opravy/vyvoj tak SVN konci s dechem.

A o tom, že mohu mít v SVN naráz víc WC asi nevíte co? Takhle se to přece dělá ne?

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #77 kdy: 31. 07. 2014, 11:33:56 »
nevim co myslis tim WC, ale jednou jsem zkusil jet v SVN ve dvou lidech ve trech branches a v podstate jsem vic resil konflikty apod nez programoval. otres.
Děkuji za možnost editace příspěvku.

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #78 kdy: 31. 07. 2014, 11:44:31 »
A o tom, že mohu mít v SVN naráz víc WC asi nevíte co? Takhle se to přece dělá ne?
Jenže to pak musíte mít na disku jeden projekt vícekrát, u všech skriptů nebo nástrojů musíte rozlišovat, se kterou variantou projektu mají zrovna pracovat…

belzebub

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #79 kdy: 31. 07. 2014, 13:04:51 »
Zavrete to nekdo. Novak je troll, jak uz mockrat ukazal v jinych diskusich. Nechce od nas poradit, chce nam vsem dokazat, ze on vsechno vi lepe a vsechno dela lepe.


Karel

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #80 kdy: 31. 07. 2014, 15:18:35 »
Osobně si myslím, že SVN a GIT jsou dvě různé věci, které čiště náhodou dělají pár podobných věcí.

Z diskuse je pro mne podstatnější dojem, že nějaký manažer došel k názoru, že se bude přecházet ze SVN na GIT a vidí za tím jen změnu SW. Asi jako místo MS Office tam dát LibreOffice. Jenže přechod mezi těmi dvěma není jen o SW a syntaxi, ale je to kompletní změna organizace práce. SVN je dobré ve věcech, které GIT neumí. To je jeden úhel pohledu. Je však nutné dodat, že GIT je neumí proto, že je nepotřebuje. Platí to i naopak, jsou věci, které SVN dělat nepotřebuje, takže je neumí.

Pokud si někdo myslí, že přechod od SVN na GIT bude jen o instalaci SW a přepsání skriptů na checkin / checkout apod., tak tvrdě narazí. GIT se sice v "SVN módu" používat dá (jsou o tom mraky návodů), ale výsledek bude bolet všechny a celkový přínos bude negativní. Pokud ale projekt bude pojat jako "zásadní změna organizace práce se zdrojovými kódy" a opravdu změní procesy, pak GIT může představovat výhodu. Záleží na množství aktualizovaných souborů, počtu vývojářů, malosti změn a četnosti změn. Pokud se hrabu jen v desítce souborů, hrabu se v tom jen já a brácha, skoro vždy je to změna přes desítky řádků a čas mezi funkčními verzemi je spíše ve dnech, tak GIT nepomůže. GIT je způsob jak udržet řád v chaosu. Pokud ale na vstupu není chaos, tak je zbytečný.

Sten

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #81 kdy: 31. 07. 2014, 15:40:28 »
Z diskuse je pro mne podstatnější dojem, že nějaký manažer došel k názoru, že se bude přecházet ze SVN na GIT a vidí za tím jen změnu SW. Asi jako místo MS Office tam dát LibreOffice. Jenže přechod mezi těmi dvěma není jen o SW a syntaxi, ale je to kompletní změna organizace práce. SVN je dobré ve věcech, které GIT neumí. To je jeden úhel pohledu. Je však nutné dodat, že GIT je neumí proto, že je nepotřebuje. Platí to i naopak, jsou věci, které SVN dělat nepotřebuje, takže je neumí.

Pokud si někdo myslí, že přechod od SVN na GIT bude jen o instalaci SW a přepsání skriptů na checkin / checkout apod., tak tvrdě narazí. GIT se sice v "SVN módu" používat dá (jsou o tom mraky návodů), ale výsledek bude bolet všechny a celkový přínos bude negativní. Pokud ale projekt bude pojat jako "zásadní změna organizace práce se zdrojovými kódy" a opravdu změní procesy, pak GIT může představovat výhodu. Záleží na množství aktualizovaných souborů, počtu vývojářů, malosti změn a četnosti změn. Pokud se hrabu jen v desítce souborů, hrabu se v tom jen já a brácha, skoro vždy je to změna přes desítky řádků a čas mezi funkčními verzemi je spíše ve dnech, tak GIT nepomůže. GIT je způsob jak udržet řád v chaosu. Pokud ale na vstupu není chaos, tak je zbytečný.

Nerozhoduje to manažer, ale vedoucí vývoje poté, co se v jiných částech té firmy Git používal několik (AFAIK šest) let a zřejmě se tedy osvědčil (disclaimer: už v té firmě pár let nejsem)

belzebub

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #82 kdy: 31. 07. 2014, 16:29:43 »
Z diskuse je pro mne podstatnější dojem, že nějaký manažer došel k názoru, že se bude přecházet ze SVN na GIT a vidí za tím jen změnu SW. Asi jako místo MS Office tam dát LibreOffice. Jenže přechod mezi těmi dvěma není jen o SW a syntaxi, ale je to kompletní změna organizace práce. SVN je dobré ve věcech, které GIT neumí. To je jeden úhel pohledu. Je však nutné dodat, že GIT je neumí proto, že je nepotřebuje. Platí to i naopak, jsou věci, které SVN dělat nepotřebuje, takže je neumí.
...
Pokud se hrabu jen v desítce souborů, hrabu se v tom jen já a brácha, skoro vždy je to změna přes desítky řádků a čas mezi funkčními verzemi je spíše ve dnech, tak GIT nepomůže. GIT je způsob jak udržet řád v chaosu. Pokud ale na vstupu není chaos, tak je zbytečný.
S timto hodnocenim ja extremne silne nesouhlasim. Muzete treba napsat konkretne, v cem je "SVN dobre ve vecech ktere GIT neumi"? Nebo co proboha myslite slovy "jsou veci, ktere SVN delat nepotrebuje, takze je neumi"?

Karel

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #83 kdy: 31. 07. 2014, 17:13:30 »
S timto hodnocenim ja extremne silne nesouhlasim. Muzete treba napsat konkretne, v cem je "SVN dobre ve vecech ktere GIT neumi"? Nebo co proboha myslite slovy "jsou veci, ktere SVN delat nepotrebuje, takze je neumi"?

SVN kupříkladu neumí dělat lokální snapshoty stavu souborů. Máte do něj ukládat finální verzi změn, na undo historii používejte buď textový editor, kusy kódu místo mazání komentujte, nebo si ukládejte kopie průběžně někam na disk. Oproti tomu jedna z klíčových vlastností GITu je, že si můžete klidně 100x za den "lokálně uložit" stav rozpracované práce. Upravím několik souborů, přeložím, spustím a zjistím, že tudy cesta nevede. GIT mi umožní se vrátit rychle k předchozímu stavu a zkusit to znovu a jinak. Těch "savepointů" si nasázejte klidně desítky a GIT vám s tím rád a efektivně pomůže. SVN nemá ambice vám s tímhle pomoci. Tam se přepokládá, že buď nahráváte hotovou verzi, nebo verzi tak jak je, když jdete domů (aby na tom někdo jiný mohl pokračovat v případě, že vyhrajete ve Sportce). Pokud někdo zvyklý na GIT začne používat SVN i tímhle způsobem (uploadovat každých 10 minut a opět to zase mazat), tak narazí na tuhý odpor. Situaci popíše "neumí to". No, neumí, ale ani se nesnaží.

Co SVN naopak umí, a je to tam schválně, je detailní řízení přístupových práv. GIT má práva jen na dost vysoké úrovni, takže buď musíte projekt rozkouskovat na několik repozitářů, nebo na práva rezignovat a prostě jen kontrolovat, zda někdo nedělá commit do něčeho, kam ho pustit nechcete. Dá se to sice označit jako "GIT přístupová práva neumí", ale faktem je, že se o to prostě ani nesnaží.

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #84 kdy: 31. 07. 2014, 17:37:08 »
Karle, nekolikrat jsem tady psal, ze samotny git pouziva (IMHO) maloktera firma. Vetsina ma nejaky nastroj nad ktery prava pochopitelne umi. Protoze to podstatne neni jen samotne verzovani a ukladani historie, ale cele workflow jak se kod dostava z klavesnice programatora na produkcni nasazeni.
Děkuji za možnost editace příspěvku.

Karel

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #85 kdy: 31. 07. 2014, 18:24:48 »
Karle, nekolikrat jsem tady psal, ze samotny git pouziva (IMHO) maloktera firma. Vetsina ma nejaky nastroj nad ktery prava pochopitelne umi. Protoze to podstatne neni jen samotne verzovani a ukladani historie, ale cele workflow jak se kod dostava z klavesnice programatora na produkcni nasazeni.

Nevidím tady rozpor s mým konstatováním, že SVN se snaží o něco trochu jiného než GIT a že jejich používání vyžaduje jiný přístup. Spíše mi to přijde, že mi to potvrzujete. Jestli vám vadí, že píšu, že git neumí přístupová práva, tak se zkuste podívat na co/koho reaguji. Belzebub tak nějak podsouvá, že minimálně jeden z těch nástrojů umí úplně vše, co ten druhý. Tak jsem dal dva příklady toho, co jeden umí dobře a druhý moc ne. Navíc jsem přidal názor, že to není neschopností autora toho nástroje, ale prostě důsledkem toho, že to do svého nástroje ani dát nechtěl.

Fakt, že GIT "není schopen řídit přístupová práva" považuji za vlastnost. Ta v praxi nepůsobí velké problémy, protože to uživatele buď moc netrápí, nebo to dokáže řešit jinými prostředky (třebas tím, že si na internetu najde, nebo sám napíše, "nějaký nástroj nad který práva pochopitelně umí"). V každém případě "GIT out of the box" to neřeší, takže pokud to nutně chcete, tak musíte sehnat někoho, kdo tomu rozumí a doporučí vám nějaký další nástroj, nebo někoho kdo tomu opravdu hodně dobře rozumí a ten nástroj vám napíše (no, nástroj, ono toho kódu zas tak moc být nemusí, ale i když je to jen pár pitomých scriptů, tak někdo to napsat musel).

Inkvizitor

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #86 kdy: 31. 07. 2014, 19:13:34 »
Fakt, že GIT "není schopen řídit přístupová práva" považuji za vlastnost. Ta v praxi nepůsobí velké problémy, protože to uživatele buď moc netrápí, nebo to dokáže řešit jinými prostředky (třebas tím, že si na internetu najde, nebo sám napíše, "nějaký nástroj nad který práva pochopitelně umí"). V každém případě "GIT out of the box" to neřeší, takže pokud to nutně chcete, tak musíte sehnat někoho, kdo tomu rozumí a doporučí vám nějaký další nástroj, nebo někoho kdo tomu opravdu hodně dobře rozumí a ten nástroj vám napíše (no, nástroj, ono toho kódu zas tak moc být nemusí, ale i když je to jen pár pitomých scriptů, tak někdo to napsat musel).

Spíš bych řekl, že klasické řešení Gitu (DVCS obecně) je mít vícero repozitářů. Pak je na správci/vedoucím projektu nebo produktu, které commity pomocí cherry-picku vezme do hlavního repozitáře. Omezení přístupu pro čtení se udělá tak, že se prostě ostré věci dají do speciálního repozitáře, kam nemá přístup každý. Buďto se to dá rozdělit a funguje to i bez těch částí, kam je omezený přístup, nebo to samostatně nefunguje a pak je ten částěčný přístup vývojáři v podstatě k ničemu.

Waseihou

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #87 kdy: 31. 07. 2014, 20:10:56 »
Lidi co programují pro Windows by měli zvážit, jestli pro ně není lepší Mercurial, který má lepší tooling, viz. třeba TortoiseHg. Git je na Windows přece jenom pomalejší než na linuxu, ale o Mercurialu to neplatí. Výhodou DVCS je že když si člověk často commituje tak potom ten merge je jistější, navíc kdo má po vás kontrolovat soubor který je v diffu totálně jiný než jeho předchůdce, byť se k němu došlo přes sérii triviálních změn, například podle pravidel pro continous refactoring od Fowlera. Je lepší když si reviewer projde několik menších diffů než jeden velký guláš...

Jinak IDE pluginy (do Visual Studia) pro Mercurial a SVN jsou prostě stále o trošičku lepší a odladěnější, což je také nejsilnější argument proti GITu. Neřešte SVN vs. GIT, řeště proč GIT když je tady Mercurial!

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #88 kdy: 01. 08. 2014, 19:54:13 »
A o tom, že mohu mít v SVN naráz víc WC asi nevíte co? Takhle se to přece dělá ne?
Jenže to pak musíte mít na disku jeden projekt vícekrát, u všech skriptů nebo nástrojů musíte rozlišovat, se kterou variantou projektu mají zrovna pracovat…

Tohle beru za vyhodu, protoze me to prinuti tvorit projekt relokovatelny. Lze jej pak nahrat do libovolne slozky a nebo se muze stat soucasti jineho projektu treba zkrze externals.

osn

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #89 kdy: 01. 08. 2014, 20:21:30 »
Nekdy mne prekvapuje, co vsechno se jeste resi v roce 2014.