abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 17:25 | IT novinky

Do prodeje (Farnell) se dostal jednodeskový počítač Tinker Board (unboxing). Jedná se o konkurenci Raspberry Pi 3 od společnosti Asus. Porovnání (jpg) těchto počítačů například na CNXSoft. Cena Tinker Boardu je 55 £.

Ladislav Hagara | Komentářů: 0
dnes 14:44 | Zajímavý projekt

Byla zveřejněna pravidla hackerské soutěže Pwn2Own 2017, jež proběhne od 15. do 17. března v rámci bezpečnostní konference CanSecWes ve Vancouveru. Soutěžit se bude o více než milion dolarů v pěti kategoriích. Letos se bude útočit i na Ubuntu. Jedná se již o 10. ročník této soutěže.

Ladislav Hagara | Komentářů: 1
dnes 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 0
dnes 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
dnes 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
včera 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
včera 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 7
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (11%)
 (2%)
 (73%)
 (3%)
 (10%)
Celkem 376 hlasů
 Komentářů: 28, poslední dnes 17:14
Rozcestník
Reklama

Dotaz: GIT a netradiční správa komponent?

7.12.2011 14:12 gorgo | skóre: 11 | blog: denicek
GIT a netradiční správa komponent?
Přečteno: 407×
Plánuji přechod z SVN na GIT (nebo klidně i jiný DVCS) a rád bych při té příležitosti vyřešil problém se správou komponent v systému založeném na Zend frameworku. V jedné stromové struktuře se totiž nachází soubory různých komponent.

Příklad adresářové struktury:
├── application
│   ├── controllers
│   ├── forms
│   ├── models
│   └── views
│       ├── layouts
│       ├── scripts
│       └── vc
├── library
│   ├── Moje
│   └── Zend
└── public
    ├── images
    ├── scripts
    └── styles
Takže např. komponenta Moje_Tabulka se skládá z následujících souborů:
  • vlastní třída v library/Moje/Tabulka.php
  • view šablona v application/views/vc/tabulka.phtml
  • css a obrázky v public/styles a public/images
Podobně jsou na tom i ostatní komponenty.

Co bych si přál úplně nejvíc?
  • každý projekt by měl svůj repozitář
  • každá komponenta by měla svůj repozitář
  • komponenty bych mile rád sdílel mezi více projekty a chtěl bych mít možnost je z různých projektů i měnit
Aktuálně má každý projekt svůj repozitář a sdílený kód synchronizuji pomocí Krusadera a jeho synchronizace adresářů=)

Toho bych se rád zbavil a řešil to nějak systematicky. Dočetl jsem se o git submodules, ale to asi můj problém neřeší, protože v každém adresáři se nachází soubory různých komponent.

Je vůbec možné něčeho takového docílit?

Řešení dotazu:


Odpovědi

Řešení 1× (gorgo (tazatel))
7.12.2011 15:26 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
Nechci rikat, ze to v gitu nejde, ale nevim o zadnem zpusobu, jak tohoto docilit. Prijde mi to spis jako nestatne umisteni jednotlivych souboru. Co si jeste pamatuji z doby kdysi davno, kdyz jsem si trochu hral se Zendem, tak tam muzes mit jednotlive moduly, coz jsou adresare ve slozece application obsahujici presne to, co ted mas primo ve slozce application. Stejne tam tam muzes mit styly precificke pro dany modul a pod. Podobne, napr. library/Moje/Tabulka.php je bud specificka pro dany modul a mela by byt v nem nebo je to neco obecneho, pak library/Moje/Tabulka.php je OK, ale cele library/Moje by mel byt asi samostatny projekt. Takze misto reseni, jak takovou strukturu narvat do gitu, abych asi spis resil, jak to presunout, aby veci, co spolu souvisi, byly ve stejnem adresari.
7.12.2011 15:57 gorgo | skóre: 11 | blog: denicek
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
Moduly v Zendu slouží k něčemu jinému - máš například public a admin moduly jedné webové aplikace. Nicméně komponenta Moje_Tabulka má být použitelná v jakémkoliv modulu či kontroleru - dokonce například Moje_Database může být využitelná i v cron skriptu. Právě problém je v tom, že celé library/Moje obsahuje několik takových komponent (které bych ideálně viděl v oddělených repozitářích). Stejný problém je pak u ostatních zmíněných adresářů - v takovém public/styles se nachází css-ka pro tabulku, login-form, wizard a já nevím co všechno. Proto bych si potřeboval nadefinovat "náležitost" jednotlivých souborů (nikoliv jen adresářů) k submodulům (tedy komponentám).
7.12.2011 20:47 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
jestli je Moje_Tabulka pouzitelna v jakemkoli modulu, pak by IMHO, ja pisu vyse, mela byt v samostatnem repozitari a ne v repozitari nejake konkretni aplikace. Pokud je v library/Moje nekolik zcela nesouvisejicich veci, ktere by bylo vhodne rozdelit na samostatne projekty/knihovny, pak bych to udelal a pro kazdou knihovnu udelal samostatny repozitar. Nevidim zadny duvod, proc mit cely projekt i se zavislostma v jednom repozitari.
8.12.2011 08:24 gorgo | skóre: 11 | blog: denicek
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
máš recht, Moje_Tabulka určitě (časem) půjde do svého repozitáře. Celá knihovna Moje na to ještě ale není úplně připravena. V ní jsou věci (ne)související podobně jako jednotlivé části knihovny Zend.

Zpět ale k původnímu dotazu: je tedy možné v Gitu nastavit, že soubor library/Moje/Tabulka.php patří do jednoho repozitáže, zatímco jiný soubor ve stejném adresáři library/Moje/Database.php patří do jiného repozitáře?
Řešení 1× (gorgo (tazatel))
8.12.2011 10:41 Jidnra
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
Podle me chces od GITu vic nez poskytuje a (z principu) resi. Pokud potrebujes vyresit situaci kdy mas N komponent v N repositarich a potrebujes je dostat do jednoho stromu souboru, pouzij nejaky sestavovaci program/skript. Make, ant, rake.... dle libosti. Jak to bude delat je jen na tobe, muze treba vy-checkout-ovat aktualni verze, poskladat je podle pravidel do vysledku, ten zabalit (a pokud chces tak treba deploynout)...

Jak v takovym pripade budes resit "opravy ve vyslednem stromu" a jejich promitnuti do repozitare je jina otazka - zalezi jak rychly bude "sestavovaci" proces, pokud to udelat dostatecne rozumne tak muzes editovat rovnou v repozitari a po kazde zmene pustit "sestaveni" a kouknout na vysledek (nezda se to, ale dneska uz to bude dostatecne rychly)
8.12.2011 10:57 gorgo | skóre: 11 | blog: denicek
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
OK, díky za odpověď. Takže ve výsledku si to budu muset tak jako tak napsat sám. To jsem chtěl vědět.
8.12.2011 11:03 Jidnra
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
Hlavne to nevymejslej cely sam :-). Kterejkoli z existujicich sestavovacu ti poresi to "nakopiruj to tam, ale jenom pokud se tam neco zmenilo"

co treba http://thechangelog.com/post/493856233/phake-m-rake-for-php ?
8.12.2011 11:27 gorgo | skóre: 11 | blog: denicek
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
Jasně=) Určitě se poohlédnu po něčem existujícím. Šlo mi předně o to, jestli to nezvládne sám Git. Odkaz poznamenán, díky!
8.12.2011 15:10 klingac | skóre: 10 | Praha
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
pre jednotlive subory to nastavit nejde, ale pre podadresare ano. heslo znie git submodule
8.12.2011 22:53 Jan Marek | skóre: 16
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
A byl by problém si udělat verzovací adresář a soubory z něj do příslušných adresářů rozhodit linkama?
9.12.2011 08:08 gorgo | skóre: 11 | blog: denicek
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
Přímo problém by to nebyl, ale ručně mi to přijde těžkopádné. Možná jako součást nějakého sestavovače o kterých mluvil Jindra.
Řešení 1× (gorgo (tazatel))
Josef Kufner avatar 12.12.2011 13:50 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
Koukni na git submodule. Na první pohled jsou trošku podivné, ale fungují pěkně.

Každý modul pak nacpeš do jednoho submodulu, což je samostatný repositář, který můžeš přilinkovat do libovolného dalšího projektu. V podstatě si submodul můžeš představit jako symlink na repositář a konkrétní verzi (commit) v něm.

Co se týče uspořádání projektu, máš v podstatě dvě možnosti:
  1. Přeskládat adresářovou strukturu tak, aby vše z jedné komponenty bylo v jednom adresáři. Autoloader pak bude muset s tímto počítat a umět hledat na různých místech. V okamžiku, kdy dáš dohromady rozumná pravidla, tak je to v pohodě (rozumné prefixy nabo jmenné prostory odpovídající adresářům komponent). Výsledek bude celkem přehledný a bude zřejmé, co do které komponenty patří.
  2. V submodulech mít instalační balíčky a pak nějaký automatický nástroj, který provede instalaci/deploy do struktury, kterou máš teď, přičemž aplikaci bych držel stejně jako komponenty nějak bokem a do dané adresářové struktury ji umisťoval stejným způsobem. Výhodou je minimum změn v aplikaci (pokud vůbec), nevýhodou složitý deploy.
Hello world ! Segmentation fault (core dumped)
13.12.2011 08:18 gorgo | skóre: 11 | blog: denicek
Rozbalit Rozbalit vše Re: GIT a netradiční správa komponent?
O submodules jsem už četl. Jinak díky za shrnutí.

Přeskládání adresářové struktury má nevýhodu v tom, že např. grafická komponenta si s sebou potáhne nějaké obrázky, styly a javascript. V Zendu se mi hodně líbí myšlenka, že tyhle věci jdou do adresáře public, zatímco php zdrojáky jsou úplně mimo.

Takže to zatím vypadá na možnost 2=)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.