Portál AbcLinuxu, 29. března 2024 08:58

Distribuované verzovací systémy – úvod (2)

27. 1. 2011 | František Kučera
Články - Distribuované verzovací systémy – úvod (2)  

Pokračujeme v úvodu do distribuovaných verzovacích systémů. Ve zkratce si představíme hlavní zástupce DVCS.

Obsah

Více scénářů práce

link

U distribuovaných systémů se nemusíme omezovat na klasické uspořádání server-klienti, ale pravděpodobně s ním stejně začneme:

Distribuované verzovací systémy

Vzdálené úložiště bude společný server a každý vývojář bude mít na svém počítači místní úložiště (kompletní historie změn bude uložena v adresáři .hg, .git nebo .bzr případně jiném podle použitého systému). Pracovní kopii pak tvoří soubory větve, nad kterou aktuálně vyvíjíme.

Po postoupení změn (commit) vzniká verze – sada změn (changeset) a vše se zatím odehrává na našem počítači v příslušném adresáři začínajícím tečkou. Teprve po odeslání změn (push) se naše práce objeví na serveru. Pokud jsme tedy zvyklí na Subversion a vyhovuje nám, uděláme vždy commit a hned po něm push a nic moc se pro nás nemění.

Jak jsme si ale řekli, máme i jiné možnosti. Z počítače na obrázku označeného jako „vzdálené úložiště“ můžeme třeba odesílat změny (push) na zálohovací server, nebo naopak ze zálohovacího serveru provádět pull – je jen na nás, odkud tu akci budeme chtít provádět. Kromě zálohovacího serveru můžeme mít také úložiště pro veřejnost – uživatelé tak svým stahováním nebudou zatěžovat server, na kterém pracují naši vývojáři.

Když některý vývojář zpřístupní ostatním svoje úložiště (přes SSH, HTTP, sdílený disk…), můžou si ostatní stahovat změny (pull) nebo mu naopak přispívat (push), aniž by změny musely projít přes centrální úložiště. To nakonec nemusíme mít vůbec – každý pracuje na svém a občas se synchronizují.

Scénář práce resp. uspořádání úložišť a tok změn mezi nimi si teď můžete vymyslet podle svého vkusu a fantazie. Inspirací vám budiž scénáře popisované v příručkách k jednotlivým systémům. Přičemž platí, že scénář nebo postup popisovaný u jednoho z distribuovaných systémů půjde většinou uplatnit i u jiného – takže se rozhodně nebojte podívat se ke „konkurenci“:

Jedním z možných scénářů je např. „správce integrace“ – v tomto případě správce (pověřený člen týmu, zkušený vývojář) stahuje změny od jednotlivých členů, kontroluje kód a schválené změny postoupí opět do jakéhosi „centrálního“ úložiště – a z něj si členové stáhnou změny ostatních (ale sami tam zapisovat nemohou).

Dnes používané DVCS

link

Mercurial, Git a Bazaar tvoří asi nejznámější a nejpoužívanější trojici. Další systémy z této kategorie jsou: Monotone, Darcs, Fossil a GNU arch. Následující programy vznikly přibližně před pěti lety a mají k sobě velmi blízko – jak svojí koncepcí, tak svými kvalitami.

Mercurial

link

Mercurial (hg) je dílem vývojáře Matta Mackalla a společnosti Selenic. Je snadné se tento systém naučit a používat ho. Je napsaný v Pythonu (binární diff je implementovaný v jazyce C). Není problém ho provozovat na různých platformách. A k dispozici je i řada zajímavých rozšíření. Mercurial je svobodný software vydaný pod licencí GNU GPLv2.

Kdo např. používá Mercurial: Netbeans, Mozilla, GNU Octave, OpenOffice.org, Xen, Dovecot.

Git

link

Původním vývojářem Gitu není nikdo menší než Linus Torvalds, autor Linuxu. Dnes ho v počtu commitů do Gitu předběhli Junio C Hamano a Shawn O. Pearce. Git byl vytvořen jako náhrada proprietárního BitKeeperu, který se do té doby používal pro verzování linuxového jádra. Je napsaný v jazyce C, Bashi a Perlu. Nabízí prakticky neomezené možnosti, byť někdy za cenu trochu složitějšího ovládání. Stejně jako Mercurial je i Git licencovaný pod GNU GPLv2.

Kdo např. používá Git: Linux (jádro), Amarok, GIMP, PostgreSQL, GNOME, VLC.

Bazaar

link

Autorem Bazaaru (bzr) je Martin Pool a vývoj sponzoruje firma Canonical (Ubuntu). Je napsaný převážně v jazyce Python. Klade velký důraz na uživatelskou přívětivost a disponuje pěkným GUI. Stejně jako předchozí dva systémy i Bazaar je vydaný pod GNU GPLv2.

Kdo např. používá Bazaar: Ubuntu, GNU GRUB, Inkscape, Squid, Stellarium, GNU Wget.

Jak si vybrat verzovací systém

link

Ještě než začnete přemýšlet, který verzovací systém je ten nejlepší, je třeba si přiznat, že většinou si nebudeme moci vybírat. Když se budeme chtít zapojit do vývoje nějakého svobodného softwaru nebo se nechat někde zaměstnat, budeme se muset přizpůsobit tomu, co se v daném týmu používá. Hodí se proto umět základy každého systému (alespoň těch tří nejpoužívanějších). Základní principy jsou naštěstí dost podobné – a ten zbytek se naučíte za chodu.

Pokud jsme v roli šéfa týmu nebo samostatného vývojáře, tak si můžete vybírat prakticky libovolně. Ani zde ale nejde určit nějaký „jeden nejlepší verzovací systém“. Situace je poměrně vyrovnaná. Pravděpodobně tak pro nás nebudou až tak důležité vlastnosti systému samotného, jako spíš jeho podpora v používaném IDE, editorech, možnost integrace s dalším softwarem (správa chyb a požadavků, testování, průběžná integrace atd.), nebo znalosti a preference ostatních členů týmu.

Následující obrázek se snaží zachytit velikost pozitivních změn, přínosů plynoucích z přechodu na „vyšší“ technologii. Za nejhorší možnou formu spolupráce můžeme považovat posílání si souborů e-mailem – zde je téměř nemožné zachovat si v souborech pořádek a zároveň duševní zdraví, neustále budeme trpět např. problémy s tím, že analýza-1.2.3.xmi která přišla mailem, je „trochu novější“ soubor než analýza-1.2.3.xmi, kterou máme zrovna na disku… nebo není, ale to nikdo neví. Trochu si pomůžeme, když si přestaneme posílat e-maily a pořídíme si nějaký sdílený disk – konečně všichni vidíme ty stejné soubory a není v tom takový guláš. Ale zase se nám stane, že „Pepa něco upravoval, ale Honza tam mezitím uložil svoji verzi a Pepova práce je teď v čudu“ a podobné nepříjemnosti.

Distribuované verzovací systémy

Největší pokrok uděláme, když zavedeme verzovací systém – a to jakýkoli. Odpustíme protentokrát posměšné komentáře, jak je ten Subversion hloupý, nebo ten CVS nemožně zastaralý – i tyto systémy nám výrazně pomůžou a ušetří práci. V některých týmech se CVS používá dodnes a jsou za něj rádi.

Dalšího poměrně velkého pokroku dosáhneme přechodem od centralizovaných verzovacích systémů k těm distribuovaným. Změnou v rámci této skupiny si už pomůžeme minimálně nebo vůbec – takže hádat se, zda je lepší to či ono je celkem zbytečné. Ať už si vyberete Mercurial, Git nebo třeba Bazaar, neuděláte chybu. Nesmíme zapomínat na to, že tyto systémy jsou v první řadě nástrojem, nikoli cílem našeho snažení – tím je vývoj softwaru případně jiná činnost.

Navíc výběr verzovacího systému není nic jako „manželství na celý život“ – máme poměrně dobré možnosti konverze mezi jednotlivými systémy. Např. pomocí příkazu:

$ hg convert pokus123

vytvoříme z gitovského projektu pokus123 projekt v Mercurialu (vznikne nám nová složka pokus123-hg), a to včetně všech větví (branches) a štítků (tags). Připravit se o historii naší práce je tedy zcela zbytečné (totéž platí i pro přechod z centralizovaných VCS). Vždy je dobré konvertovat staré úložiště a ne jen zkopírovat poslední verzi do toho nového.

Závěr

link

Dnes jsme se seznámili s obecnými vlasnostmi distribuovaných verzovacích systémů a uvedli si pár důvodů, proč je používat místo těch centralizovaných. Po tomto teoretickém úvodu se v následujících dílech seriálu podíváme podrobněji na jednotlivé systémy (příště Mercurial a v dalších dílech přijde řada na Git a Bazaar), povíme si o jejich odlišnostech a ukážeme si praktické používání.

Seriál Distribuované verzovací systémy (dílů: 3)

První díl: Distribuované verzovací systémy – úvod (1), poslední díl: Distribuované verzovací systémy: Mercurial – úvod.
Předchozí díl: Distribuované verzovací systémy – úvod (1)
Následující díl: Distribuované verzovací systémy: Mercurial – úvod

Odkazy a zdroje

Mercurial
Git
Bazaar
Monotone
Fossil
Darcs
GNU arch
Tutoriál o používání Mercurialu (česky)
Mercurial: The Definitive Guide by Bryan O'Sullivan (anglicky)
Scott Chacon: Pro Git (PDF, česky)
Scott Chacon: Pro Git (anglicky)
Bazaar User Reference (anglicky)
Bazaar Workflows (anglicky)
Analysis of Git and Mercurial – porovnání Gitu a Mercurialu pro nasazení v Google Code, 2008

Další články z této rubriky

LLVM a Clang – více než dobrá náhrada za GCC
Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Reverzujeme ovladače pro USB HID zařízení
Linux: systémové volání splice()
Programování v jazyce Vala - základní prvky jazyka

Diskuse k tomuto článku

Max avatar 27.1.2011 07:38 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Odpovědět | Sbalit | Link | Blokovat | Admin
Pěkný článek, maximální souhlas.
Zdar Max
Měl jsem sen ... :(
Marián Kyral avatar 27.1.2011 09:15 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Odpovědět | Sbalit | Link | Blokovat | Admin
K těm Git projektům bych přihodil KDE. Migrace právě probíhá.
alblaho avatar 27.1.2011 10:28 alblaho | skóre: 17 | blog: alblog
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Mě fascinoval subversionový repozitář KDE - vše v jednom. Mám pocit, že to dotáhli snad na miliardu revizí;-).

Přínos distribuovaných verzovacích systémů je pochopitelně největší pro distribuované projekty. Hlavně jde o to, že není potřeba vymýšlet, kdo dostane právo zápisu a kdo ne. Linus přetahuje stromy od deseti lidí, kterým absolutně věří. A každý s těch deseti má zase svoji skupinu dodavatelů.
27.1.2011 15:45 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
V ASF jsou na tom podobně. Teda nejsou u miliardy, jenom u miliónu :-)
Ještě na tom nejsem tak špatně, abych četl Viewegha.
27.1.2011 23:21 Sten
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Kdepak, jenom na něco přes milion. Těžko říct, jestli by SVN miliardu revizí zvládlo. Jinak na git se sice migruje, ale naprostá většina práce se stále děje v SVN.
27.1.2011 14:31 Jakub Suchy | skóre: 22 | Praha
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
+ Drupal.

Kompletni drupal.org s jadrem a ostatnimi 7500 projekty prechazi na Git.
27.1.2011 09:17 pet
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Odpovědět | Sbalit | Link | Blokovat | Admin
Díky a netrpělivě čekám na pokračování. Budeme přecházet z CVS a CrossVC na něco distribuovaného, předpokládal jsem Git, ale po dnešku je možné, že vyberu ze "svaté trojice" něco jiného s lepším gui ;-)

Ještě jednou díky
27.1.2011 23:22 Sten
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Přesně tak, mám repozitář v gitu, ale v tomto článku mě více zaujal Bazaar, tak třeba zmigruju.
pavlix avatar 27.1.2011 23:52 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Bazaar chce hodně rychlý stroj i na středně velké projekty.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
28.1.2011 11:32 vencas | skóre: 32
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Nevím kdy jste to naposled zkoušel, ale mě funguje bez problémů na starších počítačích (je-li středně velký projekt 100k řádek a 3k revizí). Ve výkonu udělal bazaar hodně velký skok asi před rokem a teď mi přijde skvělý.
pavlix avatar 28.1.2011 15:38 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Nevím kdy jste to naposled zkoušel, ale mě funguje bez problémů na starších počítačích (je-li středně velký projekt 100k řádek a 3k revizí). Ve výkonu udělal bazaar hodně velký skok asi před rokem a teď mi přijde skvělý.
Nezkoušel jsem ho několik let, protože už byl Git, takže asi tak. Každopádně díky za informaci.

Já už tu vlastně ani nejsem. Abclinuxu umřelo.
27.1.2011 09:29 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Odpovědět | Sbalit | Link | Blokovat | Admin

good clanek , ale jeste mi chybi info o DARCS

USE="-gnome -kde";turris
27.1.2011 09:48 polymorf | skóre: 14 | blog: tar_zxpf
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Odpovědět | Sbalit | Link | Blokovat | Admin
Aky verzovaci system by ste doporucili na usb flash disk? Z dovodu ze nemam/nechcem tieto subory prenasat cez siet. Co som pozeral tak vacsina VCS robi strasne velke mnozstvo suborov, uz sa mi napr. stalo ze sa na usb flash disk nedalo do jedneho adresara dat viac ako 512 suborov. S tym ze by to malo byt multiplatformne (linux, windows).
Josef Kufner avatar 27.1.2011 09:58 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Git si dává jen .git do kořene repositáře.
Hello world ! Segmentation fault (core dumped)
Gilhad avatar 27.1.2011 11:32 Gilhad | skóre: 20 | blog: gilhadoviny
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
ale pod tím .git má spoustu podadresářů a souborů...

Nicméně pokud bych já dával verzování na USB disk, tak bych ho taky naformátoval na nějaký rozumný FS, třeba ext2, rozhodně ne na FAT.
mirec avatar 27.1.2011 11:47 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Ak nevadí zahodenie nepoužívaných objektov tak celkom služne počet súborov zredukuje dvojica:
git prune --expire all
git gc --aggressive --prune
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
27.1.2011 09:59 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)

git i mercurial jedou bez problemu i na widlich .... m ale na usb flash bych nedaval nic duleziteho ..., a pozor co to ma za verzi fat ... omezeni na 512 souboru odpovida tak fat16:)

USE="-gnome -kde";turris
27.1.2011 10:00 Foo Bar | skóre: 14
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Stačilo ten USB přeformátovat alespoň na FAT32 a pak si vyberte takový verzovací systém, který bude lehký na IO operace, aby Vám ten disk vydržel.
27.1.2011 11:31 jos
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
pokud de jen o přenášení rapository a ne o vývoj nad pracovní kopií na tý flašce, tak v mercurialu bych to řešil takhle:

hg bundle --all /mnt/flash

vyrobí to jeden soubor

věřim, že i git a bazar budou mít něco podobnýho
pavlix avatar 27.1.2011 11:38 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Minimálně git bundle k dispozici je.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
27.1.2011 12:23 polymorf | skóre: 14 | blog: tar_zxpf
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
USB kluc sluzi len na prenasanie, nakoniec to asi spravim tak ze budem working copy balit. Bud pomocou toho bundle alebo obycajny tar.gz + este to ccryptom zakodujem.
27.1.2011 13:26 jos
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
při takovýmhle použití:

hg bundle --base <changeset> /cesta/k/usb

se nabundlujou jen revize od <changeset> a AFAIK sou informace v bundlu k ničemu bez repository obsahujícího <changeset>, takže možná kryptování ani není nutný
Petr Tomášek avatar 27.1.2011 12:52 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Subversion ;-)
multicult.fm | monokultura je zlo | welcome refugees!
pavlix avatar 27.1.2011 15:08 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Jasně, jako na všechno :).
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
27.1.2011 23:32 Sten
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Na flash disk bych nedával verzovací systém, který by jej zvládl poměrně rychle oddělat, ale spíše verzovaný souborový systém, třeba LogFS nebo UDF s media-type WORM.
27.1.2011 09:55 Foo Bar | skóre: 14
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Odpovědět | Sbalit | Link | Blokovat | Admin
Doporučuji na tom "svém" projektu vyzkoušet rychlost běžných operací. Má zkušenost z Debianího balíčkování je taková, že git je pekelně rychlý a hg ukrutně pomalé (konkrétně na google-go repozitářem).

Mercurial má problémy s většími soubory (a plusem je, že to oficiálně přiznává): http://mercurial.selenic.com/wiki/HandlingLargeFiles

27.1.2011 10:12 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)

jak v cem ... gentoo jeste nepreslo z cvs na git protoze checkout portage pro 1 developera proste server nezvladl ... 16giga ram na 1 kompletni ceckout bylo proste malo ..

USE="-gnome -kde";turris
alblaho avatar 27.1.2011 10:32 alblaho | skóre: 17 | blog: alblog
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
To je docela zajímavé.

Git dle mých zkušeností je pekelně rychlý, aspoň oproti Bazaaru. Ale když jsem si checkoutnul Linux kernel, tak na mém noťasu s 1G RAM bylo třeba zobrazení kompletního logu dost pomalé. Zajímalo by mě, jak by to fungovalo s CVS, ale asi dobře, protože tam se verzuje každý soubor zvlášť + tagy. :-)
pavlix avatar 27.1.2011 10:41 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Zajímalo by mě, jak by to fungovalo s CVS, ale asi dobře, protože tam se verzuje každý soubor zvlášť + tagy. :-)
Hádal bych, že log pak musí být zákonitě daleko pomalejší než v gitu, právě proto, že jsou commit objekty dost minimalistické. Z jiných důvodů možná, ale z tohoto bych řekl, že by měl vyjít opačný výsledek.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
27.1.2011 14:39 Foo Bar | skóre: 14
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Čistý checkout linusova stromu... $ time git log > /dev/null

real 0m5.937s user 0m5.670s sys 0m0.250s

Ale je pravda, že ten stroj má 8GB paměti a čtyři jádra.
pavlix avatar 27.1.2011 10:39 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
jak v cem ... gentoo jeste nepreslo z cvs na git protoze checkout portage pro 1 developera proste server nezvladl ... 16giga ram na 1 kompletni ceckout bylo proste malo ..
Otázka je, proč to ten vývojář checkoval do RAM :).
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Marián Kyral avatar 27.1.2011 12:05 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Těch 16GB nestačilo na serveru. To nemá s vývojářem nic společného.
pavlix avatar 27.1.2011 12:11 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Těch 16GB nestačilo na serveru. To nemá s vývojářem nic společného.

Můj osobní odhad je, že 16GB RAM na serveru k tomu checkoutu zdaleka nebylo potřeba. A chyba bude někde jinde, ať už v dezinformaci nebo že těch 16GB RAM nestačilo úplně něčemu jinému.

Ono si to stačí představit, checkout od serverou vyžaduje pouze vydání všech packů, jednoho po druhém. Tzn pokud ten server zvládne ty packy nabídnout přes SCP/FTP/whatever, celkem logicky zvládnout i přes Git. Je to jen odesílání souborů přes buffer.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Gilhad avatar 27.1.2011 16:15 Gilhad | skóre: 20 | blog: gilhadoviny
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Mam ted git-server na uzasnem stroji - wifi-router od linksysu pod OpenWrt, 4MB disk, 16 MB RAM a s pridanou 4GB kartou jako diskem ovladana diodama - takze kazda vetsi aktivita je fakt videt. Kdyz si stahuju cokoli, tak se rozzari jak vanocni stromecek a vsechny ty veci nejdriv spocita, pak komprimuje a posila, nicmene zvlada. Ale u nejakeho mega projektu, kdyby si to chtel vsechno nejdriv nasyslit do pameti ... ale zase tak hloupy snad neni ...
pavlix avatar 27.1.2011 16:25 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Zkus si to stáhnout v zápětí z jiného místa znovu :). Porovnávání a repacking nějakou tu ramku určitě zabere, detaily neznám.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
27.1.2011 11:34 jos
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
pomalost mercurialu je daň za to, že je to v Pythonu, třeba by se při použití Psyco nebo Cython poměr změnil
pavlix avatar 27.1.2011 11:39 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Změnil ve smyslu zmírnil, víc bych od toho nečekal.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
27.1.2011 13:27 jos
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
takhle sem to myslel, dík za upřesnění
Heron avatar 28.1.2011 09:22 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
SVN repositář o velikosti 30GB už taký není zrovna rychlík. Tohle je dobrá informace (Mercurialu se musí soubor vejít do RAM+overhead). Díky.
27.1.2011 14:08 polymorf | skóre: 14 | blog: tar_zxpf
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Odpovědět | Sbalit | Link | Blokovat | Admin
Dve otazky na grafickych klientov.

Bazar

- tam dole je biely zapisnicek s ceruzkou, proste edit polozky na ktorej stojim. Existuje na to nejaka klavesova skratka? Enter robi to ze to spusti, co napr. pri html otvori v prehliadaci. Ja to potrebujem editovat.

TortoiseHG

- jakym sposobom sa daju zobrazit adresare stromovou strukturou, teraz je vsetko v jednom, proste obrovsky list s asi 5000 subormi, absolutne sa v tom neda orientovat.

Vdaka.
vulgární Nick avatar 27.1.2011 15:45 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Odpovědět | Sbalit | Link | Blokovat | Admin
... V některých týmech se CVS používá dodnes a jsou za něj rádi. ...
Vyznívá mi to, jako by CVS mělo být něco raritního. Přitom nemálo organizací CVS normálně používá a neberou to jako výrazný handicap (resp. to považují za nejlepší řešení). Ono to má několik důvodů.

Zaprvé to je konzervatismus (klidně můžeme říct zkostnatělost) - zejména u větších organizací spravujících mnoho projektů je strach z negativních dopadů změn velký. A oprávněný.

Zadruhé jsou to časové kapacity uživatelů. Projektů je hodně, často se nestíhá a zkrátka nebývá čas, aby se uživatelé učili něco nového (relativně nepotřebného), i kdyby to v konečném důsledku bylo zlepšení.

Zatřetí jsou zde pragmatické důvody - starší VCS jako CVS mají širokou podporu jiných nástrojů (IDE atd.), kterou poměrně mladé projekty typu Git prostě nemají (nebo mají, ale méně kvalitní).

Čtvrtým důvodem jsou problémy při spolupráci několika organizací. Obě organizace používají třeba CVS, protože ho používá i ta druhá. Aby jedna přešla na něco jiného, musela by se akceptovat rizika popsaná výše a navíc by to samé musela udělat i ta druhá, takže by se to celé muselo organizačně zastřešit, což opět vyžaduje finance... Do výpočtu pravděpodobnosti takové změny tedy vstupuje ochota jedné organizace, ochota druhé a ochota obou (nebo více) to koordinovat.

Vyjmenoval jsem několik důvodů, co mě hned napadly, ale ve skutečnosti je jich daleko víc. Na CVS mě s*re několik věcí (a to jsem jen uživatel, nikoli admin), ale rozumím důvodům, proč u něj zůstat.

Zavádět jiné VCS je snažší (nikoli snadné!) u vznikajících projektů než provádět změnu u starých - to bývá často cesta do p*dele.
JSEM PRASE A HOVADO.
vulgární Nick avatar 27.1.2011 16:10 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
On třeba ten Git vznikl v půlce roku 2005. Tak rok hrozilo nebezpečí závažných chyb v důsledku chabého testování v reálném provozu. Další rok se začal používat na menší (domácí, amatérské) projekty. To už máme 2007. Řekněme dva roky trvalo, než měl jakous-takous podporu integrace s jinými nástroji. To je rok 2009. Někdy v roce 2010 ho začaly občas nasazovat i větší organizace.

Tzn. od půlky roku 2010 se může začít uvažovat o nasazení v průměrné větší komerční organizaci; samotné uvažování může trvat půl roku, rok. Další půl roku nebo rok se to může v rámci organizace zkoušet. Až pak se mohou řešit body zmíněné v komentáři výše...

Samozřejmě mluvím o průměrné organizaci (nebo minimálně o takové, o níž si myslím, že je průměrná). Některá společnost může přejít rychle třeba proto, že má prachy, jiná proto, že výhody Gitu nutně potřebuje atd.
JSEM PRASE A HOVADO.
Gilhad avatar 27.1.2011 16:24 Gilhad | skóre: 20 | blog: gilhadoviny
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Mezi gitem a cvs je jeste mezikrok subversion. Ale jinak mi prijde, ze jsi tutez vetu opsal podstatne vice slovy.

cvs je zastarale, neohrabane a zavedene. Funguje porad stejne, kdyz je na nej naveseno milion veci a neni cas, tak prechod na neco novejsiho a ohrabanejsiho muze byt tak bolestivy, ze se u stavajicich projektu nevyplati. Takze jsou radi za to co maji i se vsema nevyhodama, protoze nemaji cas a prostredky prejit na neco jineho, co by jim mozna pomohlo vic, ale musel by to nekdo zaplatit a musel by se na to vyhradit cas ktery neni.

Coz stejne nemeni nic na tom, ze cvs je zastarale a neohrabane a stejne tak to nemeni nic na tom, ze pro nekoho se prechod na lepsi nevyplati a tak je rad za to co ma.
vulgární Nick avatar 27.1.2011 18:00 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Mezi gitem a cvs je jeste mezikrok subversion.
Jenže mezi CVS a třeba Gitem je prakticky stejný rozdíl jako mezi SVN a Gitem. Jinými slovy: rozdíl mezi CVS a SVN je velmi malý - z pohledu problémů popsaných výše, ale i obecně.

Co do běžného užívání je SVN skoro stejné jako CVS. SVN beru jako CVS, které pár věcí řeší lépe, ale pořád velmi, velmi podobně jako CVS. Nástroje DVCS by ideálně (chce-li člověk čerpat jejich výhody) měly být používány diametrálně odlišně. Jasně, i DVCS lze většinou používat úplně stejně jako CVS nebo SVN, ale pak je zde otázka, proč na ně vůbec přecházet...

Z důvodu podobnosti s CVS se SVN (vzniklé kolem r. 2000) uchytilo poměrně rychle. Ale i tak to nebyla otázka krátké doby, pořád se bavíme o jednotkách let.

Nechci jmenovat, ale např. jedna poměrně slušná česko-slovenská organizace (vývojářská firma, asi 300 lidí) používá v největší míře CVS a pomalinku teď začíná používat SVN - pro některé nové projekty... A jsou docela spokojeni.
Ale jinak mi prijde, ze jsi tutez vetu opsal podstatne vice slovy.
Vždyť i vy jste můj komentář jen přepsal do jiné formy. ;)
JSEM PRASE A HOVADO.
27.1.2011 18:11 jos
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
jenže od dob CVS/SVN už má každej moula notebook, takže s DVCS můžu čerpat výhody i když budu vyvíjet projekt sám a dostanu se s notebookem kamsi do offlajnu
vulgární Nick avatar 27.1.2011 18:36 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
jenže od dob CVS/SVN už má každej moula notebook
Nevím, s mouly se příliš nestýkám... Ale ani obecně bych netvrdil, že všichni uživatelé VCS (nebo i jen jejich většina) je v tomto smyslu mobilní.
takže s DVCS můžu čerpat výhody i když budu vyvíjet projekt sám a dostanu se s notebookem kamsi do offlajnu
No jasně! Vždyť já taky preferuju DVCS... Nahoře jsem jen zmínil důvody, které brání jeho rychlému nasazení u určitého typu organizací. U projektů, které vyvíjím sám (a jsou nekomerční), můžu střídat VCS třeba každý měsíc.
JSEM PRASE A HOVADO.
pavlix avatar 27.1.2011 21:02 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Nevím, s mouly se příliš nestýkám... Ale ani obecně bych netvrdil, že všichni uživatelé VCS (nebo i jen jejich většina) je v tomto smyslu mobilní.

Oni nemusí být mobilní, bohatě stačí, když si admin hraje se sítí :). Jinak homeworking je už dneska taky docela rozšířený. Takže výpadky domácí sítě, či jakýkoli problém s VPN, nebo třeba jen expirované heslo... těch případů, kdy se DVCS hodí i na centralizovanou práci je spousta.

Já už tu vlastně ani nejsem. Abclinuxu umřelo.
vulgární Nick avatar 27.1.2011 23:23 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Prosím vás, nic mi nevysvětlujte. Mě se týká homeworking, notebook a občas (velmi zřídka, ale přece) i ty problémy se sítí. Já moc dobře vím, proč volím DVCS.
JSEM PRASE A HOVADO.
pavlix avatar 27.1.2011 23:54 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
To bych si nedovolil, pouze doplňuju, že ta mobilita není potřeba :), aby se výhody projevily. Když ne pro vás, tak pro ostatní.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
vulgární Nick avatar 28.1.2011 00:13 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
OK.
JSEM PRASE A HOVADO.
28.1.2011 00:23 jos
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
tak vypada to ze si vsichni rozumime, tak prihodim jednu historku k dobru:

kolegove meli delat upravy na projektu do te doby nijak neverzovanem (rozumej verzovanem na filesystemu ... ehm); sve zmeny zacali verzovat v mercurialu, nacez prisel jeden jouda (vazeny dlouholety zamestnanec, pravdepodobne odkojeny na CVS/SVN), kteremu se myslenka DVCS nelibila, a nakonec historie kterou vytvorili skoncila konverzi na SVN (!!!)

co si pamatuju, tak jedine jeho argumenty byly "vetsi narcnost pro adminy kvuli zalohovani" - AFAIK zalohujeme cele filesystemy inkrementalne - a "kdo s tim bude chtit delat se to musi naucit, coz je strasny problem" - jednak kazdy druhy clovek ktereho do firmy bereme nevi o VCS ani prd (i ja mezi ne patril), druhak programator ktery nejde/nechce jit dopredu je bezcenny

a to ten clovek jeste pry tvrdil, ze kdyby dopredu vedel o konverzi repository projektu na kterym makam, tak by to prej zarazil, pricemz sme outsourceovany jinam, firemni adminy to nema sanci zatezovat a s prechodem na hg v teamu nikdo nemel problem

prechodu na lepsi technologie obvykle brani:

zkorumpovani lide (to asi neni pripad verzovacich systemu)

IT aware zpatecnicti idioti (jako ten z me historky)

IT nevzdelani manageri

ostatni idioti
vulgární Nick avatar 28.1.2011 00:54 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
prechodu na lepsi technologie obvykle brani: ... idioti
Nasazení tzv. lepších technologií je investice jako každá jiná. Může z ní plynout zisk, ale taky nese rizika, která mohou způsobit ztrátu. Někdy rizika hrozí víc, jindy míň a někdy se riskuje pořádný balík a jindy zase pakatel.

Je na každém manažerovi, jak se k investici postaví. Někdo je opatrný investor, jiný riskuje.

Pokud se někdo v určitou chvíli brání těm tzv. lepším technologiím, nutně to neznamená, že je dotyčný debil.

Ano, byly doby, kdy jsem to viděl tak, že teď se prostě všichni sebereme a, hurá, nasadíme něco lepšího než to starobylé CVS. Když jsem byl odmítnut ("Bude se o tom jednat - někdy."), bral jsem to jako velkou hloupost "těch nahoře". Jenže jak jsem začal řešit i jiné problémy než čistě technické (např. organizační apod.), zjistil jsem, že opatrný postoj těch, co mě tehdy odmítli, je rozumný a daný zkušenostmi.
JSEM PRASE A HOVADO.
28.1.2011 13:02 jos
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
de hlavně o to jak to prodat, což bez zkušeností odjinud je dost tězký

ty idioti co sem o nich psal ale neslyší na sebelepší poměr +/- a vymejšlejí co nejvíc lživých výmluv (evergreen na kterej tu a tam narazim je, že s DVCS nic nenutí vývojáře pushovat změny často, což a) je nesmysl b) s DVCS to nijak nesouvisí)

v našem teamu sme nemuseli jít proti větru, prostě se jeden člen zaúkoloval že nám předvede mercurial; všem se to líbilo a dokonce to některý lidi (třeba mě) naučilo používat commandlajnu místo nějakejch pomalejch TortoiseWhatever GUI
pavlix avatar 27.1.2011 21:00 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
jenže od dob CVS/SVN už má každej moula notebook, takže s DVCS můžu čerpat výhody i když budu vyvíjet projekt sám a dostanu se s notebookem kamsi do offlajnu
My, co jezdíme hodně vlakem na pracovní cesty, to oceníme nejvíc :).
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
27.1.2011 23:34 jos
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
jeden muj dojizdejici kolega za casu kdy sme jeste pouzivali svn resil cesty vlakem tim, ze mel <ksakru-ted-si-nevzpomenu::proste-nejakou-VCSnaprd(nedistribuovaneVCS).to.SVN-uchylarnu> a taky si chvili povystacil

pak se zacal rozhlizet jak to udelat bez uchylaren, GIT na widlich tou dobou nejel, o bazaru prohlasil, ze to ma vic prikazu na restore rozbityho repository nez na opravdovou praci, takze s mercurialem stastne zijem doted
28.1.2011 12:13 jos
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
tak sem se ho zeptal a bylo to SVK
Bilbo avatar 29.1.2011 16:20 Bilbo | skóre: 29
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Tak např. s gitem lze tohle provádět i nad SVN:

git-svn clone vytvoří v gitu kopii SVN repozitáře (včetně logu a historie)

git-svn fetch dotahá z SVN nové revize (asi jako GIT pull)

Nad tím můžu pak pracovat offline jako s gitem (rebase, vytvářet branche, atd ...)

git-svn dcommit pak docpe moje commity jeden po druhém do SVN

Něco podobného má git i pro CVS.
Big brother is not watching you anymore. Big Brother is telling you how to live...
29.1.2011 13:22 ---- | skóre: 33 | blog:
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)

no, co se týče různých neduhů, tak jsou si CVS a SVN podobné, nicméně SVN má o dost jednodušší a komfortnější interface; na menší projekty se hodí perfektně; tam, kde je ale potřeba pokročilejší branching apod, tak je Git daleko lepší volba.

pavlix avatar 29.1.2011 15:37 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
A může být v době Gitu vůbec nějaký důvod použít SVN v novém projektu, kde není použití SVN dané historicky?
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
29.1.2011 16:06 Emalf
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
WebDAV (automatické verzování bez další práce a bastlení), zamykání souborů, řízení práv (a ověření autorů commitů), podpora v IDE a dalších programech…

(což tedy neznamená, že by Subversion byl obecně lepší než dnešní DVCS, ale fakt, že v některých případech může mít smysl si ho vybrat – i dnes)
pavlix avatar 29.1.2011 16:21 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
WebDAV (automatické verzování bez další práce a bastlení), zamykání souborů, řízení práv (a ověření autorů commitů), podpora v IDE a dalších programech…

(což tedy neznamená, že by Subversion byl obecně lepší než dnešní DVCS, ale fakt, že v některých případech může mít smysl si ho vybrat – i dnes)
Jestli ty důvody byly před dvěma lety významné před rokem aktuální a dnes ještě jakž takž... tak pokud budu pro nový projet vybírat něco, co se má používat příštích 10 let... SVN to nebude.

Spojení WebDAV a VCS mi obecně nezní jako dobrý nápad.

Ale za uvedení důvodů každopádně děkuju, zajímá mě to.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
28.1.2011 11:11 YYY | skóre: 29 | blog: martinek
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Odpovědět | Sbalit | Link | Blokovat | Admin
Osobne si vystacim se svym centralizovanym verzovacim systemem, ktery je tak jednoduchy, jak jen verzovaci system muze byt - bash only. :-)
pavlix avatar 28.1.2011 15:42 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
A co je na něm tak centralizovaného (pokud máš nainstalováno SCP či rsync)? :)
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
28.1.2011 18:13 YYY | skóre: 29 | blog: martinek
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Libi se mi na nem to, ze verzuje tak, jak si to predstavuji ja. Samozrejme kdybych pouzil treba svn, tak by to take slo, ale nebyla by to pro mne takova zabava. :)
pavlix avatar 28.1.2011 20:15 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Libi se mi na nem to, ze verzuje tak, jak si to predstavuji ja.
Zeptám se tedy ještě jednou :).

A co je na něm tak centralizovaného (pokud máš nainstalováno SCP či rsync)?

Nebo jinak... z čeho usuzuješ, že tvé řešení je centralizované?
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Josef Kufner avatar 28.1.2011 15:49 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Problém je, že (minimální) složitosti se nezbavíš, jen ji můžeš přesunout. Takže oč je tvůj verzovací systém jednodužší, o to víc se nadřeš.
Hello world ! Segmentation fault (core dumped)
28.1.2011 18:12 YYY | skóre: 29 | blog: martinek
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
To mate pravdu. Ale je to na celkem unosne mire. :-)
pavlix avatar 28.1.2011 20:37 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Já si pamatuju, že verzovací systém v bashi byl jednou z běžných zkouškových úloh na nějaké 3-4 hodiny :). Měl mít nějaké základný tři příkazy, tuším.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
28.1.2011 18:26 ---- | skóre: 33 | blog:
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Odpovědět | Sbalit | Link | Blokovat | Admin

osobně používám Git na Githubu pro správu vlastního kódu; je to dobrý, kromě těch případů, kdy se chce zapojit nějaký developer a je na Windows. Potom nastavování klíčů a propojení s githubem je pro většinu těžší, klasický linuxový kommandlajnový klient funguje perfektně.

pavlix avatar 28.1.2011 20:46 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Potom nastavování klíčů a propojení s githubem je pro většinu těžší, klasický linuxový kommandlajnový klient funguje perfektně.
Nastavování klíčů kvůli mě už zvládl i nějaký ten neprogramátor (než aby poslouchal vysvětlování, proč nechci FTP ani SFTP s hesly).

Programátor by s tím neměl mít (s návodem) jediný problém.

Jinak s klíči mívají lidé problém i na Linuxu, ale z toho bych spíše vinil chybějící UI a to nejlépe alespoň CLI a GUI, zatím jsem neviděl ve slušné kvalitě ani jedno.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
28.1.2011 22:44 ---- | skóre: 33 | blog:
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
no, co jsem to pomáhal nastavit některým lidem, tak s tím měli problém. Osobně nevím, protože nejsem vůbec na Windows, ale ..
xkucf03 avatar 29.1.2011 10:06 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Na použití SSH klíčů pod Windows jsem kdysi psal návod, ale stejně to nikdy nebude tak pohodlné jako v Linuxu/Unixu.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
pavlix avatar 29.1.2011 11:55 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Já doufám, že to jednou bude pohodlné aspoň na Linuxu/Unixu. Ale popravdě není žádný technický důvod, aby to bylo ve Windows méně pohodlné.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
pavlix avatar 29.1.2011 11:58 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Já zjišťuju, hlavně na linuxových školeních, že SSH má na Linuxu tak blbé (nebo spíše skoro žádné) uživatelské nástroje, že na školení práce s klíči pro SSH zabírá neúměrně mnoho času... a velkou část toho času trávím vysvětlováním, proč to nefunguje tak, jak by lidi očekávali.

Nicméně, abych jenom nenadával, už dlouho uvažuju, že zkusím napsat pár nástrojů, které to budou řešit. Ale těžko říct kdy, a pokud mě někdo předběhne (či odkáže na někoho, kdo už mě dávno předběhl), budu jenom rád.

Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Jendа avatar 29.1.2011 14:04 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Co je na tom z uživatelského hlediska tak nepříjemného? Většinou stačí ssh-keygen (haló, BSA, používám keygen!!!), dvakrát entr a pak zkopírovat výsledek z ~/.ssh/id_*.pub.

Jinak nějakou správu (i) SSH klíčů umí Seahorse.
xkucf03 avatar 29.1.2011 15:06 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
+1 taky mi přijde, že na tom není nic těžkého. A se Seahorsem zvládne generování klíčů i opravdová lama (a je to přímočařejší než s tím Putty ve Windows).

Ad patička: gratuluji :-)
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
pavlix avatar 29.1.2011 15:41 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
aky mi přijde, že na tom není nic těžkého. A se Seahorsem zvládne generování klíčů i opravdová lama (a je to přímočařejší než s tím Putty ve Windows).
Z čeho tedy usuzuješ, že Seahorse nebo ekvivalent nepůjde nikdy používat na Windows?

Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Jakub Lucký avatar 30.1.2011 00:14 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
gratuluješ k zveřejnění studijních výsledků jiných studentů? :-P
If you understand, things are just as they are; if you do not understand, things are just as they are.
xkucf03 avatar 30.1.2011 00:29 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Počítám, že to visí někde na nástěnce, takže je to celkem jedno. Např. u nás ve škole jsme dávali nějaký souhlas, že chceme být případně uvedeni na žebříčku nejlepších studentů (když někdo nechtěl, tak tam pak u výsledku chybělo jméno). Ale jinak ta gratulace byla k 1.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
Jakub Lucký avatar 30.1.2011 00:49 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Já to pochopil... Jen mě ty další výsledky zarazili...
If you understand, things are just as they are; if you do not understand, things are just as they are.
Jendа avatar 30.1.2011 01:56 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Zarazily. Visí to na veřejně přístupné nástěnce, tak co. Spíš mě zarazilo, že v TOP 30 (ze 118, z toho 30 sportovců (A) a 30 polosportovců (B)) bylo i 2,25. Jde to doprčic.
Jendа avatar 30.1.2011 02:01 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Zamazáno. Už po mně jde ÚOOÚ? :-)
pavlix avatar 29.1.2011 15:44 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Co je na tom z uživatelského hlediska tak nepříjemného? Většinou stačí ssh-keygen (haló, BSA, používám keygen!!!), dvakrát entr a pak zkopírovat výsledek z ~/.ssh/id_*.pub.
Vidíš, že se umíš nejen hezky zeptat, ale i si sám odpovědět. A aby toho nebylo málo, tak to ještě často nestačí (např. oprávnění).

Ani to kopírování není pro začátečníka (ani začínajícího admina) zrovna jednoduchý.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Jendа avatar 29.1.2011 18:34 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
např. oprávnění
To mají snad všechny distribuce defaultně dobře a člověk to musí ručně rozbít, aby to nefungovalo.

A jak by sis to představoval ty?
pavlix avatar 29.1.2011 18:55 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
1) Aby uživatel použij jednoduchý nástroj k exportování klíče.

2) Aby administrátor použil jednoduchý nástroj k importování klíče.

3) Aby administrátor použil jednoduchý nástroj k přiřazení klíčů uživatelům.

4) Aby uživatel mohl své klíče nadále spravovat nástrojem, který ho od přihlášení neodřízne.

To vše ideálně v provedení CLI a GUI, za dodržení dalších běžných podmínek, dobré úrovně bezpečnosti a decentralizace.

Vím, že je to hodně požadavků, ale splnitelné jsou všechny.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
pavlix avatar 29.1.2011 18:57 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Pozor, ještě ještě jedna důležitá věc, aby to vše fungovalo za všech okolností, které dávají smysl. Tedy mimo jiné nezávisle na tom, jestli byl nebo nebyl spuštěn SSH agent, jestli se používá nebo nepoužívá passphrase, atd.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
pavlix avatar 29.1.2011 19:03 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
A ještě jedna drobnost, mělo by tam jít spravovat veškeré klientské nastavení SSH, tedy minimálně authorized_keys včetně omezení pro jednotlivé klíče, known_hosts a config.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
xkucf03 avatar 29.1.2011 18:44 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Ani to kopírování není pro začátečníka (ani začínajícího admina) zrovna jednoduchý.
Na to je příkaz ssh-copy-id.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
pavlix avatar 29.1.2011 18:48 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Na to je příkaz ssh-copy-id.

Který nefunguje (až na některé speciální případy).
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
xkucf03 avatar 29.1.2011 19:27 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Můžeš být konkrétnější? Mně zatím vždycky fungoval.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
pavlix avatar 29.1.2011 20:28 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Protože jsi ho používal jen na to, co umí :) podívej se o vlákno výš a budeš mít jasno.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
pavlix avatar 29.1.2011 15:45 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Distribuované verzovací systémy – úvod (2)
Nehledě na to, že učit to začátečníky přes soubory je snad ještě míň bezpečný, než jim privátní klíče generovat centrálně :D.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.