Termék életciklus és        a verziókezelés    Nagy Attila Gábor      Wildom Kft.PHP Meetup 2012 november
Célok●    Legalább három környezet:       –   Fejlesztői       –   Teszt       –   Éles●    Visszaállás lehetősége●    Rel...
Hatalmas választék     CVS             Team Foundation                         ServerClearCase            Subversion Bazaa...
Commit log!!        Tippek az induláshozCommit log!!       ●           Minden környezet azonos           forráskódot haszn...
Subversion●    Legelterjedtebb eszköz●    Könnyen megtanulható●    Használható branch-ek●    Revíziók meghatározzák a proj...
Párhuzamos ágak  ●      Intuitív  ●      Gyakori      élesítésnél jobban      megfelel  ●      „Csak előre”      szemlélet...
Gordiuszi mergetrunk   testing   release
Release branchek    ●        Minden release        önálló branch-et        (tag-et) kap    ●        Release-be        comm...
Életciklus   RC          mergerelease
Megjegyzések●    Jóval kevesebb merge●    Könnyű elfeledkezni arról, hogy új    release-t hozzunk létre párhuzamos    bran...
Merge tracking●    Fontos tudni, hogy mely revíziókat    mergeltük már       –   Többszörös merge conflict-ot okoz●    SVN...
Elosztott verzió                     kezelő rendszerek●    Hatékony branch-merge támogatás       –   Linus: „a merge a lén...
Hátrányok●    Nehéz megtanulni●    Sok branchet eredményezhet       –   Kell egy jó rendező elv●    Hol a legfrissebb kód?...
Bizonytalan ügyfél                          ?                          ?            probléma                          3   ...
Feature branch                    ●                        Egy feature – egy            R            R                    ...
Ideális struktúra●    Projekt eleje    szerteágazik●    Release-ek egyesítik    a korábbi branche-    eket●    Maradhatnak...
Tudnivalók               ●                   Megvalósítható Subversionnel                      –   Git, Mercurial erősebb ...
LinkekSubversion                         Mercurialhttp://subversion.tigris.org/      http://mercurial.selenic.com/wiki/htt...
Upcoming SlideShare
Loading in...5
×

Budapest, PHP meetup: Termék életciklus és verzió kezelés

242

Published on

Verzió kezelési stratégiák, melyekkel biztosítható, hogy a fejlesztői, teszt és éles környezeteink között megbízhatóan tudjuk a kódjainkat mozgatni.
Az előadásról készült videó itt található:
http://www.ustream.tv/recorded/27330358

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
242
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Budapest, PHP meetup: Termék életciklus és verzió kezelés

  1. 1. Termék életciklus és a verziókezelés Nagy Attila Gábor Wildom Kft.PHP Meetup 2012 november
  2. 2. Célok● Legalább három környezet: – Fejlesztői – Teszt – Éles● Visszaállás lehetősége● Release early, release often● Éles környezetben is adódhatnak változtatási igények
  3. 3. Hatalmas választék CVS Team Foundation ServerClearCase Subversion Bazaar Darcs Git Mercurial BitKeeper
  4. 4. Commit log!! Tippek az induláshozCommit log!! ● Minden környezet azonos forráskódot használjon – Konfiguráció nem verzió kezelt – Környezet függő konfigurációk ● Rendszeres commitolás ● Csak tiszta kódot commitoljunk – Ignore fájlok, akár projekt szinten ● Minimális változtatás elve ● Conflictok kezelését ismerni
  5. 5. Subversion● Legelterjedtebb eszköz● Könnyen megtanulható● Használható branch-ek● Revíziók meghatározzák a projekt állapotát adott időpontban● Rugalmasabb mint a CVS
  6. 6. Párhuzamos ágak ● Intuitív ● Gyakori élesítésnél jobban megfelel ● „Csak előre” szemlélet ● Nincsenek dedikált releasek ● Nem kell „újratelepíteni”
  7. 7. Gordiuszi mergetrunk testing release
  8. 8. Release branchek ● Minden release önálló branch-et (tag-et) kap ● Release-be commitolás – Policy kérdése – Bugfix – Design módosítás
  9. 9. Életciklus RC mergerelease
  10. 10. Megjegyzések● Jóval kevesebb merge● Könnyű elfeledkezni arról, hogy új release-t hozzunk létre párhuzamos branch-ek● Minden release „új telepítés” – vagy: svn switch● Nem egyértelmű, hogy mi kerülhet a release-be, és mi nem – Fontos a jó policy – Fontos azt betartatni
  11. 11. Merge tracking● Fontos tudni, hogy mely revíziókat mergeltük már – Többszörös merge conflict-ot okoz● SVN még nem igazán erős ebben – 1.5.0 előtt nem volt SVN-ben ● svnmerge: python script – 1.5.0 óta mergeinfo ● trunk → branch - ok ● branch → trunk - csak egyszer – „reintegrate”
  12. 12. Elosztott verzió kezelő rendszerek● Hatékony branch-merge támogatás – Linus: „a merge a lényeg, branchelni mindenki tud”● Lokális branch-ek● Nagy szabadság● Implicit backup● Git, Mercurial, Bazaar http://www.youtube.com/watch?v=4XpnKHJAok8
  13. 13. Hátrányok● Nehéz megtanulni● Sok branchet eredményezhet – Kell egy jó rendező elv● Hol a legfrissebb kód?● Több idő megy el kód managementre
  14. 14. Bizonytalan ügyfél ? ? probléma 3 3 ● Revertelni nem lehet,Jelmagyarázat Még fontosabb Inkább hagyjuk... 3 3 mert értékes tartalom feature 2 2 Mégsem olyan Bocs, mégis sürgős Nagyon sürgős sürgős feature feature 1 Egész ügyes, de... Általános fejlesztés 1 ● Mergelni sem lehet 4 4 2 2 ● Cherry pick 1 1 – Nehezen átlátható 3 3 – Kimaradhat valami 2 2 – Egy commit több 1 1 feature :( R R
  15. 15. Feature branch ● Egy feature – egy R R branchRR4 4 ● Bármikor4 4 tetszőleges release33 3 3 3 3 3 3 összeállítható22 2 2 2 2 2 211 1 1 1 1 1 1 ● Mindig lehet commitolniRR ● Kisebb brancheket könnyebb átlátni
  16. 16. Ideális struktúra● Projekt eleje szerteágazik● Release-ek egyesítik a korábbi branche- eket● Maradhatnak oldalágak – Nem került be a releasebe
  17. 17. Tudnivalók ● Megvalósítható Subversionnel – Git, Mercurial erősebb ebben ● Projekt elején néha célszerűbb eltekinteni tőle ● Lehetőleg minden feature külön branchbe kerüljön – Ha egymásra épülnek, akkor az új branch az előzményből származzoncode review code review
  18. 18. 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/ nagya@wildom.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×