Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Zelený je lopuch,
fotbal to je hra...

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub Programování [ŽP: neomezená] (kategorie Programování) moderuje tvx.
Archiv
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: uppxipn
[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
bredy 2.4.2009 10:55  1011
tvxTeď něvím, co přesně řešíš. Pokud to co já a Kdokoliv, tedy synchronizaci společných částí bez nutné restrukturalizace projektu, pak problémem nejsou jednorázová řešení, ale dlouhodobě nutnost starat se o aktuální stav nasdílených zdrojáků mezi projekty.
bredy 2.4.2009 10:52  1010
KdokolivBez ohledu na to vést s tebou nesmyslnou polemiku o symlincích s tebou souhlasím v jedné věci:

Stejne tak by mel verzovaci system idealne zvladat i hardlinky, aspon teda mezi souborama, ktery jsou soucasti tehoz repository (v jinych pripadech chapu, ze by to mohlo byt obtizne).

S tím, že na filesystémech, které toto neumí lze tuto funkcionalitu dobře emulovat ... například tak, že změna mezi soubory, které ve verzovacím systému sdílí jeden node (harlink) se projeví po sekvenci commit a update. Tohle by mi úplně stačilo.

A přesně tohle SVN neumí, což považuji za vadu.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 2.4.2009 10:37  1009
Bredy [1007]: Ano, je to problem Windows. Zalezi proste na tom, jake si stanovis pozadavky na OS, ktere povazujes za minimalni. Kdyz bude mit verzovaci system na MS-DOS potize s tim, ze MS-DOS neumi soubory delsich nazvu nez 8.3, tak to bude taky problem verzovaciho systemu? Ne, bude to problem MS-DOSu. Stejne tak si muzem vymyslet jine obskurni (at uz fakticky existujici, nebo proste jenom hypoteticke) platformy s jinymi podivnymi omezenimi filesystemu, na nichz proste nektere veci nemohou dobre fungovat.
A ja s Tebou proste nesdilim nazor, ze by verzovaci system mel jit za uroven spravy souboru tak, jak jsou ve filesystemu, tedy ze by mi mel napriklad menit obsah jednoho souboru, pokud se zmeni obsah jineho souboru. Verzovaci system ma umet verzovat. Cili ma mi umet udrzovat rekneme casovou osu obrazu filesystemu, nic vic, nic min. Tudiz kdyz si vytvorim symlink, kterej ukazuje do mista, kde zadnej soubor neni, tak k tomu ma presne takto verzovaci system pristoupit. Treba problem CVS je ten, ze on kazdej symlink commitne, jako kdyby to byl obycejnej samostatnej soubor v danym miste (teda pokud vim), cimz pochopitelne vznikaj problemy. Stejne tak by mel verzovaci system idealne zvladat i hardlinky, aspon teda mezi souborama, ktery jsou soucasti tehoz repository (v jinych pripadech chapu, ze by to mohlo byt obtizne).
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 2.4.2009 10:35  1008
Bredyta spoluprace projektu... to me napada, ze bych takhle moh provozovat ty dve ruzny verze jednoho systemu...
proste bych zalozil teda hromadny repozitory, importoval projekt 1
potom bych ho zkopcil jako projekt 2, v ramci repozitory.
posleze checkout projektu 2 do lokalni kopie.....
tam uz uplne nevim jak, aby to SVN zkouslo, bych nejak zamenil ziskanej zdrojak za aktualni zdrojak puvodniho projektu... a commitnul to...
prijde ti to systemovy a proveditelny?
oba projekty samozrejme sdilej vsechny velkou cast spolecnyho kodu knihoven atd.
to sdileni bycch asi musel prolinkovat coz nevim jak je pruchozi a nebo bych si musel z aktualizaci v jedny verzi vzdycky odhodit potrebne zmeny i do druhe, coz asi pujde snadneji...
bredy 2.4.2009 10:22  1007
tvxČíslování revizí je pro někoho zavádějící, protože to vypadá, že se mění celá repozitář, ale není tomu tak. To číslo jen vyjadřuje nějaký historický milník, umožňující referovat zdroje do historie.

Máš pravdu, že pro zadané číslo revize jsi schopen sestavit celou repozitář. Ale neznamená to, že je to tak i uložené. Příklad: Když vytáhnu revizi 10, přesto mi do WC přileze soubor s revizí 3, prostě proto, že v daném adresář není žádná novější verze toho souboru. Pokud ho změníš a commitneš, uloží se s revizí 11.

Já třeba používám jeden repozitář, protože se mi lépe vytváří vztahy mezi projekty, pokud tam jsou. Naopak nemám zkušenosti s externals, který prý umožňují aktualizovat z externích zdrojů. Sám používám pravidlo pro spolupráci části zdrojáků
1) úzká spolupráce - v rámci jednoho projektu
2) volnější spolupráce - projekty v rámci repozitáře
3) žádná nebo velice lehká spolupráce - samostaný repozitář
4) externí knihovny (jiných autorů) - samostatný repozitář.

Kdokoliv:
1) Předpokládá se, že je podporuje operační systém.
2) Vyžaduje stahovat zdroje tech symbolických linků.

Ad1)napříkald windows. Nechci slyšet, že je to problém Windowsu. I kdybych se rozhodl vyvíjet třeba v MSDOSu, nebo na nějaké jiné exotické platformě, prostě symbolické linky jsou něco extra a verzovací systém by s tím neměl počítat.

Ad2) Například, pokud nasdílím takto zdroják z /trunk/project1/sources/lib/extralib/linux/aaa/includes/zdroj.h do /trunk/project2/zdroj.h, pak, aby mi to fungovalo, musím do svého WC stahovat i project1, nebo minimálně tuto šílenou cestu.

Od verzovacího systému bych očekával, že bude spíš simulovat funkcionalitu, že nasdílené zdroje jsou ve skutečnosti separátní zdroje, které si navzájem propagují updaty. Tedy pokud nasdílím jeden soubor na tři místa, pak commitem do jednoho souboru se provede propagaci změn na ostatní místa, jako bych to provedl ručně. Tohle mi SVN bohužel neposkytuje a považuji to celkem za zásadní vadu.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 2.4.2009 10:03  1006
Bredy [1004]: Muzes priblizit, v cem jsou ty symbolicky linky nesystemovy? Teda za predpokladu, ze s nima verzovaci system umi pracovat (narozdil treba od CVS).
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 2.4.2009 09:35  1005
aha, to je dost podtsatny, to je to jednodussi nez jsem cekal... takze dana repozitory je v dane verzi vzdy cela... se vsema vetvema, vsechny tagy teda taky jakoby nejsou mrtvy ale roste jim ono spolecne cislo verze, jen se nemeni. Takze kdys se pak hejbe v trunku kde je vic projektu verzovani verze jednoho projektu hejbou se jakoby i ostatni?

ja jsem pro kazdej projekt zalozil jeho vlastni repozitory... coz jak ctu asi neni bezna praxe...

bredy 2.4.2009 08:55  1004
tvxV tomhle ti SVN moc nepomůže. SVN má jeden obrovský problém, nepodporuje sdílení zdrojů. Když nakopíruju jeden soubor do tří složek, tak je prostě nakopíruju a jsou to tři soubory. Linuxáci to neřešej, pro ně to řeší OS, takže se to dělá tak, že soubory leží ve čtvrtém adresáři a do těch tří se nalinkují jako symbolické linky. Z hlediska správy repozitáře nesystémové... ale co dělat, svn je prostě zdarma.

Verzovací system typu svn je velice primitivní. Je třeba jen dbát na to, abys měl všechno v repozitáři. Dále se odprostit od klasického "diskového" přístupu a přijmout fakt, že vyrobit kopii celého stromu neznamená v SVN fyzické kopírování souborů, ale jen vytvoření adresáře, který ukazuje na stejné soubory a podadresáře (a právě že ukazuje jen staticky podle čísla revize, sdílení jako takové je nemožné).

Jinak je dobré si organizovat repozitář tak jak doporučují tvůrci. Mít branches, trunk, tags. V trunku mít aktuální stav zdrojáků, v branches si vyvíjet alternativní cesty a do tags dávat uzavřené stavy projektu (projektů). Typicky, dokončíš-li vývoj nějaké verze, vyrobit její kopii v tags/číslo_verze

Seznam používal do nedávna organizaci, kdy měl v trunk jeden velký projekt představující "Seznam Fulltext" a v tom měl hromady zdrojáků bez ladu a skladu tak jak se to hodilo. Protože to byl obrovský bordel (důsledek přechodu ze CVS na SVN), během roku 2008 se to přeorganizovalo. Nyní máme v trunk adresáře, kde každý adresář je jedena komponenta obsahující vše co potřebuje ke svému plnohodnotného sestavení.

Ještě existuje jedna varianta, a to je projektová organizace, kde repozitář nejprve obsahuje projekty, a pak každý projekt obsahuje branches, trunk, tags. Sám nevím, co je lepší.
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 2.4.2009 08:37  1003
BredyJa mam v tomto smeru uplny diry ve vzdelani, nikdy jsem verzovaci system nepotkal. Z hlediska toho jak chapu veci tak by mi nejlip asi pomohl praktickej pripad, od toho jak rozlozit data v repozitory do vetvi atd. az po praci z working copy... kdybys mel tip..

provozuju ted treba ceskou a slovenskou verzi webu, ty verze maj v necem rozdily a v necem jsou spolecny a tusim ze pres svn by se dalo usetrit dost prace a problemu ale netusim jak :(

V kazdym pripade diky za info, uz sem to takto rozchodil.

bredy 2.4.2009 08:26  1002
tvx To co umí tortoise obecně neumí svn command line interface a obecně neumí ani Eclipse. Tortoise je prostě trošku víc inteligentní. Pokud v exploreru smažeš soubor, pak Tortoise při commitu naplánuje smazání v repozitáři, kdežto svn to vidí jednoznačně jako chybu. Takhle omylem smazaný soubor nebo adresář lze řešit tak, že se nejprve updatuje (čímž se obnoví z repozitáře), a pak se smaže regulerně přes svn delete (nebo v eclipse)

Je třeba si dát pozor na verze. SVN od 1.5 už pracuje odlišně vůči oblíbené verzi 1.4.X

Co se zamčenými adresáři? Když nepomůže cleanup, tak občas pomůže vyhledání všech souboru "lock" a smazání je. Inhned potom musíš zavolat "update". Pokud ani to neprojde, pak ti nezbývá, než WC smazat a checkount ji znova. V nových verzích by mělo stačit smazat .svn složky a provést nový checkout. SVN sice bude řvát, že soubory existují, ale v poslední verzi to většinou neznamená nic víc, než, že v příslušném řádku se objeví status E a checkout pouze stáhne soubor do text-base, původní soubor zachová, takže si můžeš případně udělat diff.

S Importem ti neporadím. Já to dělám tak, že v SVN založím prázdný adresář, ten checkoutnu na místo, kde chci mít WC. Může to být na místě, kde už mám soubory. Varování typu "že soubory budou smazány" lze ignorovat, zatím jsem nikdy o nic nepřišel. Následně si přes "svn add" přidám co potřebuji a udělám commit.

Co se studia SVN týče, nejlépe je HELP + vlastní experimentování. Založ si testovací repozitář a testuj testuj.

BTW: Kdyby někdo chtěl pomoci s mergováním, v Seznamu na to máme oficiálně schválený postup a je celkem vyhovující.
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 2.4.2009 08:17  1001
A doporucili byste neco ke studiu na tema subversion, nejlip pod eclipse?
Na webu jsem nasel povetsinou jen hodne hrubou dokumnetaci, potreboval bych asi nejaky priklady jak s tim pracovat, porad si prijdu ze to pouzivam pouze jako ikrementalni zalohovac a zbytku moc nerozumim.
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 2.4.2009 08:05  1000
presnej popis problemu:
kdyz smazu adresar, dam refresh a commit, hlasi to ze ho to chce updatovat v repozitory jako missing,
pokud ho vyrobim, zase hlasi ze nejde uzamknout a bla bla, snad ze mu chybi ten .svn podadresar... krom odpojeni a novyho importu uz me nic nenapada
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 2.4.2009 07:56  999
prozkoumam to podrobneji co presne pise ze dela...a dam vedet.
a pak mnohem vetsi problem - co se da delat s nejakym adresarem kterej mel blby prqava pri importu do repozitory a tak se v nem na working copii nevytvoril adresqr .svn? diky nemu mi to odmita cokoli delat od comitu az po cleanup, porad to nadava na uzamceni nebo neuzamceni suboru na working copy...
k tomu me napada jeste: jak velkej je problem do working copy dostavat data jinudy nez primo prostrednictvim eclipse?
cekal bych ze si to eclipse pri refreshi zjisti a a svn to zaeviduje... ale je to opravdu tak? prave tenhle problem s tim adresarem mi pripada jako ze ne...
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 1.4.2009 23:02  998
Kazdopadne troufal bych si tvrdit, ze to normalni nebude.
bredy 1.4.2009 22:33  997
tvxnení, ale stávalo se mi to. Máš poslední verzi?

Ten commit dobehne a pak to bezi na 100%, nebo už během commitu?

Windows nebo Linux (já používám Eclipse na Linuxu).
Možná změnit SVN klienta (adaptera), pod Eclipse jich je několik.

[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt