Einstieg SVN

1.534 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.534
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
6
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Einstieg SVN

  1. 1. k o m mu n ik at ion & sys teme Einstieg SVNGrundlagen zur Versionskontrolle mit Subversion Einstieg SVN – ©2011 Michael van Engelshoven
  2. 2. ko mm u n i k ati o n & s ys te m e • Freie Software zur Versionsverwaltung • Versionsverwaltung ist ein System zur Erfassung von Änderungen an Dokumenten Einstieg SVN – ©2011 Michael van Engelshoven
  3. 3. ko mm u n i k ati o n & s ys te m e Zentrales Repository Einstieg SVN – ©2011 Michael van Engelshoven
  4. 4. ko mm u n i k ati o n & s ys te m e • SVN unterscheidet nur zwischen Verzeichnissen und Dateien • Es werden immer nur Änderungen übertragen und gespeichert • Jede Datei kann Eigenschaften besitzen Einstieg SVN – ©2011 Michael van Engelshoven
  5. 5. ko mm u n i k ati o n & s ys te m e SVN Properties • Bestehen aus Key-/Value-Pairs • Externe Verweise svn:externals • Merge-Informationen svn:mergeinfo • Ignoreierte Dateien svn:ignore Einstieg SVN – ©2011 Michael van Engelshoven
  6. 6. ko mm u n i k ati o n & s ys te m e Übliche Struktur Sodbrennen /trunk /tags Version-1.0 Version-1.1 /branches Selbsttest Einstieg SVN – ©2011 Michael van Engelshoven
  7. 7. ko mm u n i k ati o n & s ys te m e Ordner anlegen. Im SVN $ svn mkdir -m „Projektstruktur angelegt“ http://svnrepo/rennie/trunk http://svnrepo/rennie/branches http://svnrepo/rennie/tags Committed revision 3. $ Einstieg SVN – ©2011 Michael van Engelshoven
  8. 8. ko mm u n i k ati o n & s ys te m e Branch-Systeme Einstieg SVN – ©2011 Michael van Engelshoven
  9. 9. ko mm u n i k ati o n & s ys te m e Never Branch System • Tägliche Arbeit wird direkt in /trunk übertragen • Gelegentlich ist /trunk defekt, wenn eine ganze Serie von Änderungen übertragen wird Einstieg SVN – ©2011 Michael van Engelshoven
  10. 10. ko mm u n i k ati o n & s ys te m e Never Branch System Sehr einfach zu handhaben Projekt kann jederzeit defekt sein Einstieg SVN – ©2011 Michael van Engelshoven
  11. 11. ko mm u n i k ati o n & s ys te m e Always Branch System • Jeder arbeitet immer in seinem eigenen Branch. • Bei abgeschlossener Entwicklung und Tests werden die Änderungen aus dem Branch in /trunk übernommen Einstieg SVN – ©2011 Michael van Engelshoven
  12. 12. ko mm u n i k ati o n & s ys te m e Always Branch System /trunk ist jederzeit extrem stabil Benutzer sind von einander isoliert Mehr merges als notwendig Einstieg SVN – ©2011 Michael van Engelshoven
  13. 13. ko mm u n i k ati o n & s ys te m e Branch When Needed System • Tägliche Arbeit wird in /trunk committet • Regel #1: /trunk ist Jederzeit lauffähig • Regel #2: Ein Commit ist so irrelevant, dass er nicht von jemand anderes überprüft werden muss • Regel #3: Können Regel #1 oder Regel #2 nicht eingehalten werden, wird ein Branch angelegt. Einstieg SVN – ©2011 Michael van Engelshoven
  14. 14. ko mm u n i k ati o n & s ys te m e Branch When Needed System /trunk ist garantiert stabil Benutzer sind von einander isoliert Einstieg SVN – ©2011 Michael van Engelshoven
  15. 15. ko mm u n i k ati o n & s ys te m e Kopieren im SVN $ svn copy -m „neuer Branch für Umbau. Ticket: SOD-123“ http://svnrepo/rennie/trunk http://svnrepo/rennie/branches/Umbau Committed revision 4. Rennie $ Einstieg SVN – ©2011 Michael van Engelshoven
  16. 16. ko mm u n i k ati o n & s ys te m e Checkout $ cd ~/Projekte Projekte $ mkdir Rennie Projekte $ cd Rennie Rennie $ svn checkout http://svnrepo/rennie/branches/Umbau . Checked out revision 4. Rennie $ Einstieg SVN – ©2011 Michael van Engelshoven
  17. 17. ko mm u n i k ati o n & s ys te m e Die Workingcopy • Lokale Kopie des ausgecheckten Repositorys • Hier machen wir unsere Änderungen • Änderungen können jederzeit mit svn revert widerrufen werden • Atomare Änderungen • Mehrere Aufgaben nach und nach erledigen Einstieg SVN – ©2011 Michael van Engelshoven
  18. 18. ko mm u n i k ati o n & s ys te m e Diff auf eine Datei Einstieg SVN – ©2011 Michael van Engelshoven
  19. 19. ko mm u n i k ati o n & s ys te m e Commit Rennie $ svn commit . -m „Zusammenfallende Divs gefixt. Siehe Ticket SOD-123“ Sending index.html Transmitting file data . Committed revision 5. Rennie $ Einstieg SVN – ©2011 Michael van Engelshoven
  20. 20. ko mm u n i k ati o n & s ys te m e Show Annotations Einstieg SVN – ©2011 Michael van Engelshoven
  21. 21. ko mm u n i k ati o n & s ys te m e Verdammte Konflikte! Einstieg SVN – ©2011 Michael van Engelshoven
  22. 22. ko mm u n i k ati o n & s ys te m e Wie entsteht ein Konflikt? • Jemand die selbe Zeile geändert wie ich • Jemand hat die Zeile entfernt, die ich geändert habe • Die Datei die ich aktualisiert habe existiert nicht mehr • Eine Datei die ich gelöscht habe wurde editiert Einstieg SVN – ©2011 Michael van Engelshoven
  23. 23. ko mm u n i k ati o n & s ys te m e Konflikt nach einem Update Rennie $ svn up Conflict discovered in README. Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options: p C README Updated to revision 13. Summary of conflicts: Text conflicts: 1 Rennie $ Einstieg SVN – ©2011 Michael van Engelshoven
  24. 24. ko mm u n i k ati o n & s ys te m e Konflikte lösen • Ein Konflikt sollte sofort gelöst werden • Nach Lösung des Konflikts ausreichend testen • NIE einen Konflikt einfach mit den eigenen Änderungen überschreiben Einstieg SVN – ©2011 Michael van Engelshoven
  25. 25. ko mm u n i k ati o n & s ys te m e Änderungen verwerfen Rennie $ svn revert README Reverted README Rennie $ svn update README At revision 13. Rennie $ Einstieg SVN – ©2011 Michael van Engelshoven
  26. 26. ko mm u n i k ati o n & s ys te m e Konfliktete Datei Einstieg SVN – ©2011 Michael van Engelshoven
  27. 27. ko mm u n i k ati o n & s ys te m e Mir Egal! Rennie $ cp README.mine README Rennie $ svn resolved README Resolved conflicted state of README Rennie $ Einstieg SVN – ©2011 Michael van Engelshoven
  28. 28. ko mm u n i k ati o n & s ys te m e Zusammenführen 1. Konfliktete Datei enthält Marker 2. Änderungen aus .mine und .r123 abgleichen 3. Mit anderem Entwickler zusammen setzen 4. Marker entfernen 5. Datei als resolved markieren Einstieg SVN – ©2011 Michael van Engelshoven
  29. 29. ko mm u n i k ati o n & s ys te m e So kann das aussehen … 12 <<<<<<< .mine 13 This is fun stuff! 14 ======= 15 This is a documentation file 16 >>>>>>> .r13 Einstieg SVN – ©2011 Michael van Engelshoven
  30. 30. ko mm u n i k ati o n & s ys te m e Zeit zu mergen Einstieg SVN – ©2011 Michael van Engelshoven
  31. 31. ko mm u n i k ati o n & s ys te m e Zeit zu mergen • Täglich: Um Branch aktuell zu halten • Am Ende der Entwicklung: Um Änderungen in den Trunk zu bringen • Ggf. um gezielte Änderungen zu übernehmen Einstieg SVN – ©2011 Michael van Engelshoven
  32. 32. ko mm u n i k ati o n & s ys te m e Vorgehensweise „Merge“ 1. Es sind keine lokalen Änderungen mehr vorhanden 2. Mit Arbeitskopie in Zielzweig switchen 3. Merge aus Quellzweig in lokale Arbeitskopie 4. Testen! 5. Commit der geänderten Dateien Einstieg SVN – ©2011 Michael van Engelshoven
  33. 33. ko mm u n i k ati o n & s ys te m e Keep up to date! Rennie $ svn merge http://svnrepo/rennie/trunk --- Merging r5 through r18 into .: A neueDatei.php U index.html Rennie $ svn commit . -m „Aktuellen Stand aus trunk gemerged“ A neueDatei.php U index.html Committed revision 19. Rennie $ Einstieg SVN – ©2011 Michael van Engelshoven
  34. 34. ko mm u n i k ati o n & s ys te m e Branch reintegrieren Rennie $ svn switch http://svnrepo/rennie/trunk D neueDatei.php U index.html Updated to revision 18. Rennie $ svn merge --reintegrate http://svnrepo/rennie/branches/Umbau --- Merging r5 through r18 into .: A neueDatei.php U index.html Rennie $ svn commit . -m „Umbau-Branch zurück gemerged“ ... Committed revision 19. Rennie $ Einstieg SVN – ©2011 Michael van Engelshoven
  35. 35. ko mm u n i k ati o n & s ys te m e Visualisierung eines Projektes /branches/blubb 6 10 12 /branches/foo /branches/bar 2 3 7 9 1 4 8 11 13 15 /trunk 5 14 /tags/Version-1.0 /tags/Version-1.1 Einstieg SVN – ©2011 Michael van Engelshoven
  36. 36. ko mm u n i k ati o n & s ys te m e Projekt exportieren Einstieg SVN – ©2011 Michael van Engelshoven
  37. 37. ko mm u n i k ati o n & s ys te m e Tag erstellen $ svn copy -m „Tag für Livedeploy erstellt. Ticket: SOD-123“ http://svnrepo/rennie/trunk http://svnrepo/rennie/tags/Version-1.1 Committed revision 20. Rennie $ Einstieg SVN – ©2011 Michael van Engelshoven
  38. 38. ko mm u n i k ati o n & s ys te m e Tag exportieren Rennie $ svn export http://svnrepo/rennie/tags/Version-1.0 ~/Desktop/Rennie-1.0 A index.html A neueDatei.php Exported revision 19. Rennie $ Einstieg SVN – ©2011 Michael van Engelshoven
  39. 39. ko mm u n i k ati o n & s ys te m e Diff zwischen Zweigen Rennie $ svn diff http://svnrepo/rennie/tags/Version-1.0 http://svnrepo/rennie/tags/Version-1.1 --summarize M branches/Umbau/index.html D branches/Umbau/.DS_Store M branches/Umbau/ A branches/Umbau/auth/login.php Rennie $ Einstieg SVN – ©2011 Michael van Engelshoven
  40. 40. ko mm u n i k ati o n & s ys te m e Checkout auf Live Live $ svn checkout https://trac.bainbits.net/ ... /tags/Version-1.1 customized A customized/index.html A customized/.DS_Store A customized/irgendwas.php A customized/auth/login.php Checked out revision 20. Live $ Einstieg SVN – ©2011 Michael van Engelshoven
  41. 41. ko mm u n i k ati o n & s ys te m e Live updaten Live $ svn switch ^/tags/Version-1.2 customized M customized/index.html D customized/.DS_Store M customized/ A customized/auth/logout.php Checked out revision 149. Live $ Einstieg SVN – ©2011 Michael van Engelshoven
  42. 42. ko mm u n i k ati o n & s ys te m e Tags für Live-Checkouts • Bietet uns eine enorme Stabilität • Erleichter uns den Schritt zurück zum vorherigen Stand • Dient als Dokumentation Einstieg SVN – ©2011 Michael van Engelshoven
  43. 43. ko mm u n i k ati o n & s ys te m e P.S. Commits von Live nicht als Brainbits Benutzer! Live $ svn commit --username mvanengelshoven . -m „So ists richtig“ Einstieg SVN – ©2011 Michael van Engelshoven
  44. 44. ko mm u n i k ati o n & s ys te m e Viel Spass! Einstieg SVN – ©2011 Michael van Engelshoven
  45. 45. ko mm u n i k ati o n & s ys te m e Quellen • Ariejan – How to resolve Subversion Conflicts http://ariejan.net/2007/07/04/how-to-resolve-subversion-conflicts/ • Wikipedia – Apache Subversion http://de.wikipedia.org/wiki/Apache_Subversion • Apache SVN – Subversion best practices http://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html Einstieg SVN – ©2011 Michael van Engelshoven

×