Pásztor János




Az SVN használata csapatfejlesztésben
Code sharing
●   E-mailben küldözgetés
●   SMB share
●   VCS (Version Control System)
    ●   CVS
    ●   SVN
    ●   GIT
...
A probléma
●   Harry és Sally
    kiolvassák ugyanazt a
    fájlt a repóból.
●   Mind a ketten
    szerkesztik.
●   Előszö...
Lock-Modify-Unlock
●   Minden fejlesztő
    módosítás előtt
    zárolja a fájlt.
●   A zárolt fájlokat nem
    lehet addig...
Copy-Modify-Merge
●   Nincs zárolás
●   Bárki módosíthat
●   Ha a fájl a repóban
    idő közben
    megváltozott, a
    ké...
Copy-Modify-Merge
●   Ha valaki out-of-date
    hibát kapott, akkor fel
    kell oldania az
    ütközéseket kézzel.
●   Ha...
Miért használjunk VCS-t?
●   Több fejlesztő is tud dolgozni ugyanazon a
    kódon anélkül, hogy az ütközések nyomán
    fe...
Miből lett az SVN?
●   Röviden: a CVS-ből.
●   A cél a CVS hülyeségeinek az orvoslása
    volt, nem több.
●   Teljes repór...
Fontosabb SVN műveletek
●   Import
●   Checkout
●   Commit
●   Update
SVN import
SVN import
SVN import
SVN Checkout
SVN Checkout
SVN Checkout
SVN Checkout
SVN Commit
SVN Commit
SVN Update
SVN Update
SVN haladóknak
●   Ütközések (conflictok) feloldása
●   Branchelés, tagelés
●   SVN repó készítés és elérés
●   Hookok
Ütközések feloldása
Ütközések fajtái
●   Automatikusan feloldható
    Ha az ütközés ugyanabban a fájlban, de más
    helyen van.
●   Automatik...
Ütközés kézi feloldása
Ütközés kézi feloldása
Ütközés kézi feloldása
Branchelés, tagelés




●   A klasszikus SVN felosztás:
    ●   Trunk
    ●   Branches
    ●   Tags
●   Mindez nem kötelez...
Branch készítése
Branch készítése
Mergelés
Mergelés
Mergelés
SVN repó elérés
●   Helyi fájlrendszerben: file:///
●   SSH-n keresztül: ssh+svn://
●   SVNServe-n keresztül: svn://
●   A...
SVN repó készítése
●   Az svn admin create repónév paranccsal
●   Ha Apache-on keresztül szeretnénk elérni, ne
    felejts...
Apache beállítása
<Location /repos>
 DAV svn
 SVNParentPath /.../repos
 SVNListParentPath on
 AuthType Basic
 AuthName "ja...
Apache beállítása
●   Szükséges modulok:
    ●   DAV
    ●   SVN
    ●   SVN Authz
●   Jelszó hozzáadása a jelszófájlhoz:
...
Hookok
●   Hook-típusok:
    ●   post-commit
    ●   post-lock
    ●   post-revprop-change
    ●   post-unlock
    ●   pre...
Hook felhasználások
●   Ne lehessen üres message-el commitolni
●   Szintaxis-ellenörző (php -l)
●   Kódkonvenció ellenörző...
Referenciák, linkek
●   SVN Red Book
    http://svnbook.red-bean.com/
●   Comparison of revision control software
    (Wik...
Ennyi...




Kérdések?
TV Maci theme...




Köszönöm a figyelmet!
Upcoming SlideShare
Loading in …5
×

Az SVN használata a csapatfejlesztésben

2,342 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
2,342
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Az SVN használata a csapatfejlesztésben

  1. 1. Pásztor János Az SVN használata csapatfejlesztésben
  2. 2. Code sharing ● E-mailben küldözgetés ● SMB share ● VCS (Version Control System) ● CVS ● SVN ● GIT ● Mercurial ● Visual SourceSafe ● És még sokan mások
  3. 3. A probléma ● Harry és Sally kiolvassák ugyanazt a fájlt a repóból. ● Mind a ketten szerkesztik. ● Először Harry, majd Sally elmenti a fájlt a repóba. ● Harry módosítása elvész.
  4. 4. Lock-Modify-Unlock ● Minden fejlesztő módosítás előtt zárolja a fájlt. ● A zárolt fájlokat nem lehet addig felküldeni, amíg a zárolást az eredeti zároló fel nem oldja.
  5. 5. Copy-Modify-Merge ● Nincs zárolás ● Bárki módosíthat ● Ha a fájl a repóban idő közben megváltozott, a későbbi felküldő hibát kap.
  6. 6. Copy-Modify-Merge ● Ha valaki out-of-date hibát kapott, akkor fel kell oldania az ütközéseket kézzel. ● Ha minden ütközést sikerült feloldani, felküldheti a repóba.
  7. 7. Miért használjunk VCS-t? ● Több fejlesztő is tud dolgozni ugyanazon a kódon anélkül, hogy az ütközések nyomán felülíródnának a verziók. ● Minden fejlesztőnek megvan a saját munkaverziója, amibe senki nem tud belenyúlni. ● A módosítások visszakövethetőek, több- kevesebb munkával vissza is lehet állni.
  8. 8. Miből lett az SVN? ● Röviden: a CVS-ből. ● A cél a CVS hülyeségeinek az orvoslása volt, nem több. ● Teljes repóra vonatkozó verziószám a fájlonkénti verzió helyett. ● Ezért a fájlok átnevezése nyomon követhető. ● Nincsenek megkülönböztetve a branchek/tagek, SVN-ben a könyvtárak tetszőlegesen nevezhetőek el.
  9. 9. Fontosabb SVN műveletek ● Import ● Checkout ● Commit ● Update
  10. 10. SVN import
  11. 11. SVN import
  12. 12. SVN import
  13. 13. SVN Checkout
  14. 14. SVN Checkout
  15. 15. SVN Checkout
  16. 16. SVN Checkout
  17. 17. SVN Commit
  18. 18. SVN Commit
  19. 19. SVN Update
  20. 20. SVN Update
  21. 21. SVN haladóknak ● Ütközések (conflictok) feloldása ● Branchelés, tagelés ● SVN repó készítés és elérés ● Hookok
  22. 22. Ütközések feloldása
  23. 23. Ütközések fajtái ● Automatikusan feloldható Ha az ütközés ugyanabban a fájlban, de más helyen van. ● Automatikusan nem feloldható Ha az ütközés ugyanabban a fájlban és ugyanazon a helyen van.
  24. 24. Ütközés kézi feloldása
  25. 25. Ütközés kézi feloldása
  26. 26. Ütközés kézi feloldása
  27. 27. Branchelés, tagelés ● A klasszikus SVN felosztás: ● Trunk ● Branches ● Tags ● Mindez nem kötelező, csak ajánlott. ● A branchek, tagek készítése az svn copy művelettel történik.
  28. 28. Branch készítése
  29. 29. Branch készítése
  30. 30. Mergelés
  31. 31. Mergelés
  32. 32. Mergelés
  33. 33. SVN repó elérés ● Helyi fájlrendszerben: file:/// ● SSH-n keresztül: ssh+svn:// ● SVNServe-n keresztül: svn:// ● Apache/DAV-on keresztül: http://
  34. 34. SVN repó készítése ● Az svn admin create repónév paranccsal ● Ha Apache-on keresztül szeretnénk elérni, ne felejtsünk el írásjogot adni neki!
  35. 35. Apache beállítása <Location /repos> DAV svn SVNParentPath /.../repos SVNListParentPath on AuthType Basic AuthName "janoszen.com SVN" AuthUserFile /.../access.users Require valid-user </Location>
  36. 36. Apache beállítása ● Szükséges modulok: ● DAV ● SVN ● SVN Authz ● Jelszó hozzáadása a jelszófájlhoz: ● htpasswd -m access.users usernev
  37. 37. Hookok ● Hook-típusok: ● post-commit ● post-lock ● post-revprop-change ● post-unlock ● pre-commit ● pre-lock ● pre-revprop-change ● pre-unlock ● start-commit
  38. 38. Hook felhasználások ● Ne lehessen üres message-el commitolni ● Szintaxis-ellenörző (php -l) ● Kódkonvenció ellenörző (PHP code sniffer)
  39. 39. Referenciák, linkek ● SVN Red Book http://svnbook.red-bean.com/ ● Comparison of revision control software (Wikipedia) http://en.wikipedia.org/wiki/Comparison_of_revi sion_control_software ● A prezi letölthető: http://svn.janoszen.com/repos/svntest/trunk/pre zi/svn.ppt
  40. 40. Ennyi... Kérdések?
  41. 41. TV Maci theme... Köszönöm a figyelmet!

×