termék-életciklus és a verziókezelés

Download Termék-életciklus és a verziókezelés

If you can't read please download the document

Upload: attila-gabor-nagy

Post on 21-Jun-2015

393 views

Category:

Documents


1 download

DESCRIPTION

Hogyan kövessök a softwerünk változásait, ha azt rendszeresen át is kell adni egy ügyfélnek? Milyen stratégiákból választhatunk, ha CVS-t, SVN-t, vagy GIT-et használunk? 2009-es web konferencián tartott előadásom fóliái.

TRANSCRIPT

  • 1. Termk letciklus sa verzikezels Nagy Attila Gbor Wildom Kft.Magyarorszgi Web Konferencia 2009

2. gyfl ignyekJl ismert hrom krnyezet: Fejleszti Teszt lestlthat verzikVisszalls lehetsge 3. Web krnyezet problmiRelease early, release oftenKrnyezet kialaktsaerforrsignyesles krnyezetben is addhatnakvltoztatsi ignyekHibajavtsokat gyorsan kelltvezetniAdott termk tbb gyflnl islehet teleptve (esetlegesen msverzik) 4. MegoldsokTermkben Kvetkezetesimplementlva verzikezels Release management eszkz 5. Termkben implementlvaSajt modul kezel implementlsa Elegns megolds Minden telepts egyedileg llthatssze Aktulis llapot tlthat Akr az gyfl is frissthet 6. HtrnyaiBonyolult megrniAlap rendszer frisstse? Erre kln frissts kezel kellFejleszts alatt a bels verzikezelst nem helyettesti Ajnlott: ha sok gyfelet szolgl ki egyetlen termk 7. VerzikezelsFejleszts elkerlhetetlen eszkzeCsoportmunka (2+ f) esetnelkerlhetetlenFogalmak: Munkaverzik Branch-ek Release-ek 8. Hatalmas vlasztk Team Foundation CVS ServerClearCaseSubversion BazaarDarcsGitMercurialBitKeeper 9. Commit log!!Tippek az indulshozCommit log!! Minden krnyezet azonos forrskdot hasznljon Konfigurci nem verzi kezelt Krnyezet fgg konfigurcik Rendszeres commitols Csak tiszta kdot commitoljunk Ignore fjlok, akr projekt szinten Minimlis vltoztats elve Conflictok kezelst ismerni 10. CVSAjnlott elfelejteni Knny ttrni rla Subversion-reBranch kezels gyengeNagyobb projektet nehz tltni History fjl szinten van csak Vletlen update utn nehzvisszallniTag-ek viszont jl hasznlhatakbenne 11. les s fejleszti krnyezet CVS-benKln tag az les verzinak Brmikor kialakthat, les siteon: cvs tag LIVEFejleszti verzik tag nlkllests esetn ttesszk a tag-et: cvs tag -F LIVE cvs update 12. rtkelsElnyk HtrnyokMegakadlyozza ales site-onvletlen update-ket trtntmdostsokatBrmikor knnyennehzjrahzhat az lescommitolnikrnyezetRelease tudatosdnts eredmnye 13. SubversionLegelterjedtebb eszkzKnnyen megtanulhatCVS hibit kijavtottkHasznlhat branch-ekRevzik meghatrozzk a projektllapott adott idpontbanRugalmasabb mint a CVS 14. Prhuzamos gakIntuitvGyakorilestsnl jobbanmegfelelCsak elreszemlletNincsenekdediklt releasekNem kelljratelepteni 15. Gordiuszi mergetrunk trunk testingtesting release release 16. Release branchekMinden releasenll branch-et(tag-et) kapRelease-becommitols Policykrdse Bugfix Designmdosts 17. letciklus RCmergerelease 18. MegjegyzsekJval kevesebb mergeKnny elfeledkezni arrl, hogy jrelease-t hozzunk ltre prhuzamos branch-ekMinden release j telepts vagy: svn switchNem egyrtelm, hogy mi kerlheta release-be, s mi nem Fontos a j policy Fontos azt betartatni 19. Merge trackingFontos tudni, hogy mely revzikatmergeltk mr Tbbszrs merge conflict-ot okozSVN mg nem igazn ers ebben 1.5.0 eltt nem volt SVN-bensvnmerge: python script 1.5.0 ta mergeinfotrunk branch brmikorbranch trunk csak egyszer reintegrate 20. Elosztott verzi kezel rendszerekHatkony branch-merge tmogats Linus: a merge a lnyeg, branchelni mindenki tudLoklis branch-ekNagy szabadsgImplicit backupGit, Mercurial, Bazaar http://www.youtube.com/watch?v=4XpnKHJAok8 21. HtrnyokNehz megtanulniSok branchet eredmnyezhet Kell egy j rendez elvHol a legfrissebb kd?Tbb id megy el kdmanagementre 22. Bizonytalan gyfl??problma33 Revertelni nem lehet,Jelmagyarzat Jelmagyarzat Mg fontosabb Inkbb hagyjuk...33mert rtkes tartalom feature22 Mgsem olyan Bocs, mgis srgs Nagyon srgs srgs feature feature1 Egsz gyes, de... ltalnos fejleszts1 Mergelni sem lehet4422 Cherry pick11 Nehezen tlthat33 Kimaradhat valami22 Egy commit tbb11feature :(RR 23. Feature branchEgy feature egyRRbranchRR4 4Brmikor4 4tetszleges release33 33 33 33sszellthat22 22 22 2211 11 11 11Mindig lehetcommitolniRRKisebb brancheketknnyebb tltni 24. Idelis struktraProjekt elejeszertegazikRelease-ek egyestika korbbi branche-eketMaradhatnakoldalgak Nem kerlt be areleasebe 25. Tesztkrnyezet gyfl nem akarja/tudja a branch- eket kln ltninext Nincs tbb krnyezetnk Specilis demo branch Brmikor sztszedhet Release-candidate 26. TudnivalkMegvalsthat Subversionnel Git, Mercurial ersebb ebbenProjekt elejn nha clszerbbeltekinteni tleLehetleg minden feature klnbranchbe kerljn Ha egymsra plnek, akkor az jbranch az elzmnyblszrmazzon 27. Commit log!!Commit hookokCommit log!! Konvenci ellenrzs Svn: enforcer.py Changelog a commitlogokbl Integrci hibakezel rendszerrel Commit lista supervising 28. Release management eszkzkMaven, php-maven, HudsonFordt nyelveknl elnys JavaMaven tudja, hogy mit, honnan kellsszeszedni Repository szabadon hasznlhatBuild sorn megkerlhetetlen Neheztheti a tesztelst Pl: JavaScript, CSS 29. sszefoglalBefektetsMi felel meg neknk legjobban? Eszkz Szakrtelem Publiklsi gyakorisg Teleptsek szma Kapcsolat az gyfelnkkel 30. LinkekSubversion Mercurialhttp://subversion.tigris.org/http://mercurial.selenic.com/wiki/http://svnbook.red-bean.com/ Bazaarhttp://tortoisesvn.tigris.org/ http://bazaar-vcs.org/Maven Githttp://maven.apache.org/ http://git-scm.com/http://www.php-maven.org/ http://www.youtube.com/watch?v=4XpnKHJAok8Hudsonhttp://hudson.dev.java.net/ http://web.conf.hu/ [email protected]