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

Což takhle
dát si Lopuch?

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: ncwkzgt
[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
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.
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 1.4.2009 22:27  996
jsem zvykleej na tortoise a ta byla v pohode, vsechno temer okamzite.
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 1.4.2009 22:26  995
je to normalni, ze pri Importu nebo Commitu v Subversion v Eclipse, u vcelku skromnyho projektu se mi rozjede procesor na 100% a pracuje jak divej i nekolik hodin?
operator304 26.2.2009 09:55  994
Setrim prstiky :)

Ok, potrebuju nasledujici. Mam pet souboru s definicema bean. V junite je loaduju nasledujicim zpusobem:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:org/codehaus/xfire/spring/xfire.xml",
"classpath:/applicationContext.xml",
"classpath:/applicationContext-fellowships.xml",
"classpath:/applicationContext-security.xml",
"classpath:/applicationContext-hao.xml",
"classpath:/applicationContext-sdb.xml"})
public class NakejTest extends AbstractTransactionalJUnit4SpringContextTest {


Jenze nekolik komponent, ktere potrebuju naloadovat, potrebuje aby ApplicationContext byl jeden konkretni, kterej tu mame napsanej. Anotace ContextConfiguration vyrobi nejakej org.springframework.context.support.GenericApplicationContext, ja ale potrebuju cz.firma.kydy.nakydalsikydy.NejakaVlastniImplementaceApplicationContext

Netusite nekdo, jak na to?
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 26.2.2009 09:51  993
Tak jestli se chces na neco zeptat, tak se zeptej, ne? Proc takovahle zbytecna omacka?

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

(c) 2001-2011 Lopuch.cz   
Kontakt