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

v

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #15 kdy: 30. 07. 2014, 15:37:33 »
Tohle umím. Repo si vyexportuju a vlozim do lokalni SVN repozitory. To je operace na par kliknuti. Nasledne do toho normalne commituju. Az se vratim do materske firmy, vytahnu si revizi, ze ktere jsem to vyexportoval, zamerguju cely lokalni repozitar do te revize, zamerguju tam zmeny provedene mezitim (nebo proste udelam update), zkontroluju, commitnu. Pokud se to protahne, protoze tam je moc konfliktu, resim to pres branch, do ktereho nakopiruju moji verzi z lokalniho svn. Cele to zabere par minut a hodi se to jen... obcas

a s gitem je to "git push"

tady jeden uživatel píše něco o bránění se moderním technologiím:
http://forum.root.cz/index.php?topic=8389.msg86471#msg86471



perceptron

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #16 kdy: 30. 07. 2014, 15:51:30 »
pri ucenim gitu som prisiel na toto:

v gite treba zabudnut na vsetko, co ste kedy poznali zo sveta svn a naucit sa to nanovo, poriadne a citanim manualu a skusanim.

lebo mnoho veci je takych, ze "dokelu, preco to nie je ako v svn" (preco musim robit komit na dvakrat a nie ako v svn, preco ma eclipse divny plugin), a pritom je to o inej filozofii, ktoru treba pochopit

akurat na to treba mat cas a pozornost, ja som nedokazal ist do gitu hrrr hrrr stylom, lebo to bol suicide, nadavanie a frustracia

ja pouzivam git kvoli githubu, kvoli lokalnej historii a tagom (lebo eclipse local history je cool, ale sa mi stalo, ze nevidel do velmi dalekej minulosti)

ale stale uznavam, ze ked centralny server nie je bremeno ani prekazka, tak svn na zakladne veci staci v pohode

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #17 kdy: 30. 07. 2014, 15:52:58 »
Otazka zni naopak: proc bys nemel? Treba podelana pomalost, zavislost na serveru, "reseni" konfliktu... A az jednou zkusis delat v tymu aspon dvou lidi nebo projektu vetsim nez prezentacni web tak SVN nebudes chtit vice videt. Pridej k tomu treba Atlassian Stash a zjistis proc je SVN mrtvy nepouzitelny sajrajt.
Děkuji za možnost editace příspěvku.

Honza

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #18 kdy: 30. 07. 2014, 15:55:12 »
Pokud nepotřebuješ lokální commity (z diskuse mi přišlo že je potřebuješ a obcházíš) a branche, netrápí tě těch pár věcí, co má git rychle a svn ne, pokud ti nikdo git nevnucuje, tak zůstaň u svn. Git je mocnější nástroj s jednou úrovní fíčur (a míst, kde se něco může pokakat) navíc. Pro práci jednoho člověka na malém projektu je git jednoznačně overkill, tady bych ho doporučil jen, pokud ho máš rád a jsi na něj zvyklý - nebo si ho chceš vyzkoušet. Pro malý tým je to na zvážení, já bych tady asi už git doporučil, ale záleží, na co jsou lidé zvyklí. Pro zběsilé projekty typu jádro Linuxu určitě git. Ale tohle všechno, Ondro, víš, tak proč se na to ptáš? :-)

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #19 kdy: 30. 07. 2014, 15:59:30 »
Git je jiste mocny nastroj, o tom neni pochyb. Ale na to, jak je to udajne super vec a vsichni ji uzivaji atd, tak mi prijde jako docela nedomrdly. Podpurne nastroje jsou take nedotazene. Sami lide, kteri s gitem delaji treba 5 let, maji obcas problem s nim nektere veci vybojovat.
Ktere podpurne nastroje jsou nedotazene? V terminalu jede vse jak ma, v Netbeanech jede vse jak ma, SourceTree je uzivatelsky skvely lokalni nastroj, github nebo Stash jsou perfektni server GUI a workflow nastroje.
Děkuji za možnost editace příspěvku.


JmJ

  • ****
  • 315
    • Zobrazit profil
Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #20 kdy: 30. 07. 2014, 16:09:33 »
Git je jiste mocny nastroj, o tom neni pochyb. Ale na to, jak je to udajne super vec a vsichni ji uzivaji atd, tak mi prijde jako docela nedomrdly. Podpurne nastroje jsou take nedotazene. Sami lide, kteri s gitem delaji treba 5 let, maji obcas problem s nim nektere veci vybojovat.
Ktere podpurne nastroje jsou nedotazene? V terminalu jede vse jak ma, v Netbeanech jede vse jak ma, SourceTree je uzivatelsky skvely lokalni nastroj, github nebo Stash jsou perfektni server GUI a workflow nastroje.
v terminalu mi zdaleka nejelo vse jak ma. git pull ani po 30 mintach nerkene, ze server neni dostupny. overeny stav. pokud uz k chybe dojde, vidim akousi dvojtecku, misto toho, abych videl tu chybu, kterou to vybleje po te, co zmacknu tusim Q ;-) vim ze to zni srandovne, ale ja marne dumam, co tim nekdo chtel rict :-)
neuzivam netbeans, uzivam VisualStudio, tam plugin de facto neni (snad ve 2013 je nativni pry).
tortoise svn neumi rict, ze se nelze spojit se serverem, stejne tak jako konzolovy git. zrejme to spolu souvisi ;-)
mi doporuceny gitblit se chlubil, ze easy and quick. prvni detektivka je, najit tu spravnou dokumentaci :-))

proste me to tak uplne neprsevedcilo a stale mam spis pocit, ze mi to v hodne vecech haze spis klacky pod nohy. ale jak tu nekdo psal, je to zrejme o jine filosofii. uvidime casem, jestli ten cas proklety u gitu se ukaze jako dobre vynalozeny.

pecko

  • ***
  • 105
    • Zobrazit profil
    • E-mail
Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #21 kdy: 30. 07. 2014, 16:31:39 »
@JmJ: Ja pouzivam Git uz niekolko rokov a mne chyby vzdy hlasil. Dokonca mi ponukal aj riesenia a daval mi navody, co presne mam robit, aby som dosiahol to, co sa mi prave nepodarilo.

Ala ja pozivam skutocny Git, nie tretostranne graficke nadstavby (tzv.wizardy). Skutocny Git je mnohomocny nastroj, ale iba ak ho pouzivas "dumb" sposobom. Cize zidne nadstavby, ziadne wizardy, ziadne pluginy, lebo spravidla tie su vyprodukovane zle a nepokryvaju a nevyuzivaju jeho potencial.

Skutocnym Git-om mam na mysli nativnu konzolovu aplikaciu s nazvom Git s mnozstvom lahko zapamatatelnych prikazov a prepinacov.

Cize ja to vidim skor na problem u Teba, ze zazivas negativne skusenosti. Ale vedz, ze to nie su skusenosti s Git-om, ale s tretostrannou nadstavbou.

To ale nie je problem Git-u ;)

belzebub

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #22 kdy: 30. 07. 2014, 16:34:06 »
Tak nejak nevim, co pan Novak timto dotazem sleduje. Kdyby chtel OPRAVDU znat vyhody a nevyhody gitu , nebo jeho porovnani se svn, vygoogluje za par minut vic nez dost relevantnich informaci. Kdyby ho zajimalo nejake specificke pouziti gitu, tak by se zeptal konkretneji. Kdyby ho vubec zajimal nazor ostatnich, neodpovidal by vsem stylem: "to ja nepotrebuju, to pro me neplati, to ja delam tak a tak". Takze ja osobne si myslim ze se jedna o trolling (at uz umyslny nebo neumyslny), ostatne jako v naproste vetsine ostatnich diskuzi pana Novaka.

Pokud se ale NEJEDNA o trolling, tak bych rad upozornil na to, ze COKOLIV si pane Novak myslite o nejakem distribuovanem verzovacim systemu, bude pravdepodobne spatne. Jediny a nejlepsi zpusob jak si udelat svuj nazor je chvili git (nebo mercurial nebo cokoliv jineho) pouzivat.

Za sebe bych to shrnul asi tak, ze vsechno co bylo v svn neuveritelne slozite komplikovane, az nemozne, je v gitu nebo mercurialu superjednoduche a snadne. SVN jsem uplne prestal pouzivat pred 3 roky a ani jednou me nenapadlo ze bych chtel zpatky. Jinak par prikladu, ktere jsou pro me hodne dulezite:

 * mazani a presouvani souboru a adresaru - v svn jde o horor, v git/hg je to absolutne bezproblemove
 * branching a mergeovani branchu - v svn jsem sice mel branche pro starsi verze produkcniho kodu, pro vyvojovou vetev apod, ale jejich mergeovani byla prace na cely den, ne-li vice. V git/hg vec na par sekund.
 * zadny centralni server neni nutny - pokud chci JEN verzovat nejaky testovaci programek, v svn se to nevyplati verzovat - zvlast pokud nemate zalozene centralni uloziste - v git/hg je to "git/hg init" a jedu.. po skonceni muzu cely adresar s testovacim programkem smazat a je pryc i se svym lokalnim ulozistem.
 * a obecne snad uplne VSECHNO je v git/hg rychlejsi... radove rychlejsi a pohodlnejsi

Duvodu je hodne, ale dokud si to clovek nevyzkousi, tak neuveri a jak znamo - zkusenost se tezko sdeluje. Prirovnal bych to treba k akumulatorovemu sroubovaku - dokud jsem ho nemel, rikal jsem ze to je kravina, a ze co potrebuju vyvrtat, vyvrtam normalni vrtackou do zastrcky a na sroubovani mam normalni sroubovak, tak k cemu by mi byl akumulatorovy sroubovak. Jenze pak jsem ho dostal k narozeninam jako darek. A musim rict, ze na starou vrtacku jsem od te doby ani nesahl a veci co jsem driv srouboval pul hodinu mam ted hotove za 5 minut, nikde se mi nemota kabel, muzu s tim vlezt kamkoliv, diky akumulatorovemu packu se to da snadno odlozit a pak zase vzit, atd, atd. A podobne je to se SVN (stara vrtacka s kabelem)  a git/hg (akumulatorovy sroubovak).

Sten

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #23 kdy: 30. 07. 2014, 17:26:48 »
Ale to SVN umi taky a neni to problem. Jde jen o to, ze ty vetve jsou verejne a dostupne vsem (takze se neztrati, kdyz kolega jednoho dne neprijde do prace a nikdo dalsi nebude mit heslo k jeho PC)

Hodně často narážím u evangelistů GITu na základní neznalosti práce v SVN. Je to úsměvné.

Ze zkušenosti to problém je. SVN prostě není moc dobré ve chvíli, kdy máš dvacet větví, kde se vyvíjí různé nové vlastnosti či opravují problémy (= jeden vývojář nerozbíjí práci druhému), a po dokončení vývoje se to merguje. Nebo pokud vyvíjíš software v několika verzích, protože máš několik klientů, kdy se jednomu klientovi snažíš vyladit vydávanou verzi podle jeho přání a reportů, a přitom zároveň vyvíjíš nové vlastnosti (které by tu vydávanou verzi mohly snadno rozbít) pro jiného. A pak se ozve klient, kterému jsi vydával software před rokem, že rozhodně nechce nové vlastnosti (protože by to znamenalo nové testování), ale potřebuje opravit jednu chybu, kterou jsi opravil v nových verzích. V SVN budeš mít rychle velmi mnoho konfliktů a velmi mnoho ruční práce, obzvlášť pokud jedna větev nějaký soubor přesunula a druhá upravila nebo se nějaký soubor rozdělil, což se stává až překvapivě často. Git takové věci většinou zvládne automaticky a jen jedním příkazem (např. cherry-pick v Subversion rozbije budoucí merge).

SVN umí být taky v jednom adresři, ale spatřuju jeho hlavní výhodu oddělené WC od repozitáře. Dokonce dneska už ani neplatí to, že by adresář .svn byl v každém podadresáři, takže to oddělení je úplné (i od metadat). U soliterního vývoje mívám repozitář na jiném disku než je WC...proč asi? Ale spíš vyvíjím přes vlastní server, umožňuje mi to na různých zařízeních mít okamžite přístup k aktuální verzi zdrojáků (jasně, taky mám dropbox, ale tohle je víc pod kontrolou)

Tohle samozřejmě Git umí taky: git clone --separate-git-dir někde/jinde ssh://server/var/git/repo.git. Navíc s Gitem máš najednou jak okamžitý přístup k aktuální verzi zdrojáků (svn update je totéž jako git pull), tak přístup k plné historii, i když nemáš připojení k internetu.

Nikdy jsem neměl problém s rychlostí operací. Rychlost sítě byla vždycky víc limitující faktor (práce přes mobilní připojení) A rychlost překladu ještě víc limitující. Tohle mi příjde jako virtuální problém.

V Gitu ale rychlost sítě na mobilním připojení řešit nepotřebuješ, protože to commituješ jen lokálně a pushneš to, až budeš mít pořádné připojení. Navíc během pushe či pullu, které trvají velmi dlouho, můžeš stále vyvíjet dál, nemusíš čekat, až skončí.

podlesh

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #24 kdy: 30. 07. 2014, 17:52:43 »
v terminalu mi zdaleka nejelo vse jak ma. git pull ani po 30 mintach nerkene, ze server neni dostupny. overeny stav. pokud uz k chybe dojde, vidim akousi dvojtecku, misto toho, abych videl tu chybu, kterou to vybleje po te, co zmacknu tusim Q ;-) vim ze to zni srandovne, ale ja marne dumam, co tim nekdo chtel rict :-)
Podle té dvojtečky a klávesy Q se jedná o less (nebo nějakou jeho pochybnou náhradu). Možná zkusit
export GIT_PAGER=cat



Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #25 kdy: 30. 07. 2014, 18:52:43 »
Proc jsem se ptal? Protoze si musim pripravit dobrou argumentaci proti nekomu, kdo me to chce vnutit. K tomu potrebuju znat argumenty protistrany dopredu.

Nepouzivam zadne gui ,git jsem zkousel z konzole, TortoiseGit jsem stahnul pozdeji v domeni, ze me to pomuze v zakladnich operaci. Kde je sakra prikaz update?

Lokalni commity nepouzivam, jen jsem navrhoval, jak by to slo jednoduse vyresit bez nutnosti menit navyky a menit infrastrukturu. Eclipse Local History je fajn a pokud nekomu vadi ze neni tak hluboka tak by se mel zamyslet nad tim, jak dlouho necommitoval... asi tam bude problem

ad git push - fajn jeden prikaz pro 1 promile pripadu, ale musim uplne zmenit system prace z jednodussiho na slozitejsi v 99.9% pripadu ,diky

Merge a reseni konfliktu svn neresi na serveru ,ale na klientovi. SVN merge lze nahradit vlastnim merge nastrojem (zakladni neznalost SVN)


Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #26 kdy: 30. 07. 2014, 18:54:51 »
Tisíce paralelních větví umožňují například ...

Ale to SVN umi taky a neni to problem.
Problém to není asi jak kde, každopádně z mého pohledu to Git umí podstatně lépe. Vlastně neznám SVN repository, kde by se tisíce paralelních větví používalo. Zato znám ze světa SVN případy "To by chtělo vytvořit branch. No tak já to radši nebudu commitovat, nechám si to u sebe na disku a pak to commitnu všechno najednou na konci". Nebo když je potřeba stejnou změnu promítnout do více větví, dělá se to ručně, protože SVN neumí commit aplikovat do jiné větve.

Jde jen o to, ze ty vetve jsou verejne a dostupne vsem (takze se neztrati, kdyz kolega jednoho dne neprijde do prace a nikdo dalsi nebude mit heslo k jeho PC)
Kolegovo repository může být zálohované na serveru nebo klidně sdílené ve veřejném nebo poloveřejném repository.

Hodně často narážím u evangelistů GITu na základní neznalosti práce v SVN. Je to úsměvné.
Nebo jsou to prostě jen uživatelé, kteří dříve používali SVN a pak začali používat i nějaký DVCS - a těžko vám budou vysvětlovat, že SVN taky větve umí a není to žádný problém, ale teprve s DVCS je používá často a rád.

Ale poradím vám jeden silný argument proti DVCS. Je to něco jiného, než SVN. Pracovat s Gitem jako by to bylo SVN je oproti SVN opruz. Místo update - merge - commit z SVN děláte s DVCS odložení změn (stash) - pull - rebase - unstash - commit - push. Některé kroky sice některé DVCS provedou automaticky, ale stejně člověk musí vědět, že se to dělá takhle. Takže přecházet na DVCS, aby to člověk dál používal jako SVN, to se nevyplatí.


Konečně podívej se na zdrojáky webkit/chromium. To je slepenec bez vnitřní organizace, ve kterém se prakticky nedá vyznat, na různých místech se střídají programátorské styly, někde dokonce i několik na jedné řádce.
To s verzovacím systémem nemá vůbec nic společného.
No spíš to souvisí s myšlenkou distribuovaného vývoje. Nikdy jsem tu myšlenku moc nepobral.
Jako že by bylo lepší, kdyby se všichni programátoři střídali u jednoho počítače? To jste asi nemyslel, že... Distribuovaný VCS s distribuovaným vývojem nijak nesouvisí, to "D" v "DVCS" znamená, že je distribuované úložiště zdrojáků, tedy celá historie projektu není jenom na jednom serveru, ale má ji každý vývojář u sebe. Třeba je pryč s notebookem, nemá připojení do internetu, a přesto může commitovat, procházet historii, vytvářet branche apod. Ale když se pak připojí k internetu, tak své repository sesynchronizuje s firemním, uvidí všechny nové změny a ostatní uvidí jeho změny, a nemusí nic mergovat nebo to jinak řešit.

Logik

  • *****
  • 1 022
    • Zobrazit profil
    • E-mail
Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #27 kdy: 30. 07. 2014, 19:18:43 »
Vlastní zkušenost:

v SVN: branchování, mergování, revokace blbého commitu, kopírování adresářů, záchrana po blbě provedené operaci: časté problémy a nadávky
v GIT vše +- bez problémů

Ne, že by to vše v SVN nešlo, jen prostě s gitem mi vše přijde jednodušíí.

Jistě, možná jen neumím s SVN. Ale používal jsem dosti dlouho SVN i GIT a s gitem jsem se to vše naučil. Křivka učení také svědčí o kvalitě nástroje.



JS

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #28 kdy: 30. 07. 2014, 20:04:22 »
Proc jsem se ptal? Protoze si musim pripravit dobrou argumentaci proti nekomu, kdo me to chce vnutit. K tomu potrebuju znat argumenty protistrany dopredu.

Proc k tomu pristupovat takto konfrontacne, s predpokladem, ze by se vam Git nikdy nemohl libit? Zkusenost jinych lidi hovori jasne o opaku - neznam snad nikoho, kdo by presel z Gitu na SVN, ale naopak hodne lidi a pochvaluji si to.

Nebylo by lepe toho vaseho kolegu pozadat, aby vam sam ukazal, jak s tim efektivne pracuje? Nejenze se tak dozvite jeho argumenty primo, ale mozna vas i presvedci, a usetrite si tak zbytecny konflikt.

Re:Proč bych měl přejít ze SVN na GIT? (vážně)
« Odpověď #29 kdy: 30. 07. 2014, 20:05:20 »
Zakladni rozdil pro praci s GITem je treba si uvedomit, ze je rozdelena operace commit a push (i kdyz v Eclipse pluginu lze obe operace provest najednou, pro usetreni klikani).

Jinak na GITu si hlavne pochvaluju snadnou praci s vetvema (a pak je dobrym zvykem v GITu delat pro kazdou ficuru branch), taky z tohoto lze dodrzovat dobry zvyk commitovat casto (napriklad drzet pravidlo, ze v jednom commitu se opravuje pouze jeden jedinny bug).

Nejcastejsi operace v GITu jsou: pull (kombinace fetch a merge), add (vyberu, co chci commitnout), commit (mozno pouzit -a pokud se nechces zabyvat funkci add), push.

Je zde nutno podotknout, ze commit pouze vytvari novou verzi (pracuje nad lokalnim repem), pro komunikaci se vzdalenym repem slouzi fetch (obvykle v kombinaci s merge jako pull) a push.