Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Überblick über aktuelle Versionsmanagementsysteme  Stefan Pielicke < Stefan.Pielicke@dlr.de> Tech Talk, DLR Köln-Porz, 10....
Outline <ul><li>Zentralisierte Systeme </li></ul><ul><ul><li>Perforce </li></ul></ul><ul><li>Verteilte Systeme </li></ul><...
 
Zentralisierte VCS Aufbau Repo Server Bob Alice commit edit update checkout …
Zentralisierte VCS Systeme <ul><li>CVS (CVSNT, OpenCVS) </li></ul><ul><li>Subversion </li></ul><ul><li>Perforce </li></ul>...
Perforce Überblick <ul><li>Kommerzielles System (Perforce Software) </li></ul><ul><li>Sonderlizenzen für Edu und OSS Berei...
Perforce Überblick <ul><li>Eigenen Defect-Tracking System </li></ul><ul><li>API-Anbindung für: </li></ul><ul><ul><li>Ruby ...
Perforce Überblick <ul><li>Graphische Tools für gesamten Ablauf (p4v) </li></ul><ul><li>Vielfältige Trigger </li></ul><ul>...
Verteilte VCS Systeme <ul><li>Git </li></ul><ul><li>Mercurial </li></ul><ul><li>Bazaar </li></ul><ul><li>Arch </li></ul><u...
Verteilte VCS Arbeitsweise <ul><li>Unterscheidet sich grundsätzlich von zentraler Arbeitsweise: </li></ul><ul><ul><li>Loka...
Verteilte VCS Arbeitsweise Main Bob Alice Linus clone clone Edit Edit pull pull push Automatische Builds und Tests
Verteilte VCS Gemeinsamkeiten <ul><li>Atomic commits </li></ul><ul><li>Hooks (pre-, post-commit) </li></ul><ul><li>Migrati...
git Überblick <ul><li>Projektstart: Frühjahr 2005 </li></ul><ul><li>Projekte: Linux Kernel, X.Org, Rails, OLPC </li></ul><...
git Einsatz <ul><li>Plug-Ins: Eclipse, IDEA, Netbeans, Vim, TextMate, Emacs, … </li></ul><ul><li>Windows Support als eigen...
Mercurial Überblick <ul><li>Projektstart: Frühjahr 2005 </li></ul><ul><li>Projekte: OpenSolaris, NetBeans, Xine, OpenJDK,…...
Mercurial Überblick <ul><li>Plug-Ins: Eclipse, IDEA, Netbeans, Vim, TextMate, Emacs, … </li></ul><ul><li>Protokolle: HTTP,...
Bazaar Überblick <ul><li>Projektstart: Frühjahr 2005 </li></ul><ul><li>Projekte: Ubuntu (teilweise, vollständig ab: 9.04),...
Bazaar Überblick <ul><li>Plug-Ins: Eclipse, IDEA, Netbeans, Vim, TextMate, Emacs, … </li></ul><ul><li>Protokolle: HTTP, SF...
Verteilte VCS Vergleich <ul><li>Unterschiede marginal </li></ul><ul><li>Spezieller Anwendungsfall oder eigener Geschmack e...
Zusammenfassung
Nächste SlideShare
Wird geladen in …5
×

Überblick über aktuelle Versionsmanagementsysteme

1.509 Aufrufe

Veröffentlicht am

TechTalk von Stefan Pielicke (DLR Köln-Porz, 10.09.2008) über verteilte Versionsmanagementsysteme.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Überblick über aktuelle Versionsmanagementsysteme

  1. 1. Überblick über aktuelle Versionsmanagementsysteme Stefan Pielicke < Stefan.Pielicke@dlr.de> Tech Talk, DLR Köln-Porz, 10.09.2008
  2. 2. Outline <ul><li>Zentralisierte Systeme </li></ul><ul><ul><li>Perforce </li></ul></ul><ul><li>Verteilte Systeme </li></ul><ul><ul><li>Git </li></ul></ul><ul><ul><li>Mercurial </li></ul></ul><ul><ul><li>Bazaar </li></ul></ul><ul><li>Zusammenfassung </li></ul>
  3. 4. Zentralisierte VCS Aufbau Repo Server Bob Alice commit edit update checkout …
  4. 5. Zentralisierte VCS Systeme <ul><li>CVS (CVSNT, OpenCVS) </li></ul><ul><li>Subversion </li></ul><ul><li>Perforce </li></ul><ul><li>ClearCase </li></ul><ul><li>Visual SourceSafe </li></ul><ul><li>… </li></ul>
  5. 6. Perforce Überblick <ul><li>Kommerzielles System (Perforce Software) </li></ul><ul><li>Sonderlizenzen für Edu und OSS Bereich </li></ul><ul><li>Focus auf Stabilität und Skalierbarkeit </li></ul><ul><li>Workspace Konzept </li></ul>
  6. 7. Perforce Überblick <ul><li>Eigenen Defect-Tracking System </li></ul><ul><li>API-Anbindung für: </li></ul><ul><ul><li>Ruby </li></ul></ul><ul><ul><li>C++ </li></ul></ul><ul><ul><li>Perl </li></ul></ul><ul><ul><li>Python </li></ul></ul><ul><li>Proxies für (pseudo-) verteiltes Arbeiten </li></ul>
  7. 8. Perforce Überblick <ul><li>Graphische Tools für gesamten Ablauf (p4v) </li></ul><ul><li>Vielfältige Trigger </li></ul><ul><li>Daemons </li></ul><ul><li>Beständiger Server Kontakt nötig (edit, revert) </li></ul>
  8. 9. Verteilte VCS Systeme <ul><li>Git </li></ul><ul><li>Mercurial </li></ul><ul><li>Bazaar </li></ul><ul><li>Arch </li></ul><ul><li>Monotone </li></ul><ul><li>SVK </li></ul><ul><li>Darcs </li></ul><ul><li>BitKeeper </li></ul><ul><li>… </li></ul>
  9. 10. Verteilte VCS Arbeitsweise <ul><li>Unterscheidet sich grundsätzlich von zentraler Arbeitsweise: </li></ul><ul><ul><li>Lokale Sandbox </li></ul></ul><ul><ul><li>Keine vorgegebene Infrastruktur </li></ul></ul><ul><ul><li>Offline Arbeiten </li></ul></ul><ul><ul><li>Branching und Merging funktionieren „automatisch“ </li></ul></ul>
  10. 11. Verteilte VCS Arbeitsweise Main Bob Alice Linus clone clone Edit Edit pull pull push Automatische Builds und Tests
  11. 12. Verteilte VCS Gemeinsamkeiten <ul><li>Atomic commits </li></ul><ul><li>Hooks (pre-, post-commit) </li></ul><ul><li>Migrationstools für Subversion (git-svn, hgsvn, bzr-svn) </li></ul><ul><li>GUIs für alle gängigen Systeme </li></ul><ul><li>Kommados ähnlich Subversion </li></ul>
  12. 13. git Überblick <ul><li>Projektstart: Frühjahr 2005 </li></ul><ul><li>Projekte: Linux Kernel, X.Org, Rails, OLPC </li></ul><ul><li>Schnell!! </li></ul><ul><li>Sehr Umfangreich (> 150 Kommandos) </li></ul><ul><ul><li>git-blame </li></ul></ul><ul><ul><li>git-cherry-pick </li></ul></ul>
  13. 14. git Einsatz <ul><li>Plug-Ins: Eclipse, IDEA, Netbeans, Vim, TextMate, Emacs, … </li></ul><ul><li>Windows Support als eigenes Projekt </li></ul><ul><li>Netzwerkprotokolle: HTTP, FTP, ssh, rsync, email </li></ul><ul><li>HashCodes (SHA-1) als Revisionsnummer </li></ul><ul><li>Lokale Branches möglich </li></ul><ul><li>Online Repository: GitHub, gitorious </li></ul>
  14. 15. Mercurial Überblick <ul><li>Projektstart: Frühjahr 2005 </li></ul><ul><li>Projekte: OpenSolaris, NetBeans, Xine, OpenJDK,… </li></ul><ul><li>Zu 77% in Python geschrieben </li></ul><ul><li>TortoisHg </li></ul>
  15. 16. Mercurial Überblick <ul><li>Plug-Ins: Eclipse, IDEA, Netbeans, Vim, TextMate, Emacs, … </li></ul><ul><li>Protokolle: HTTP, ssh, email </li></ul><ul><li>Einfaches Revision-Naming </li></ul><ul><li>Lokale Branches nur mittels cloning </li></ul><ul><li>Online Repository: FreeHg </li></ul>
  16. 17. Bazaar Überblick <ul><li>Projektstart: Frühjahr 2005 </li></ul><ul><li>Projekte: Ubuntu (teilweise, vollständig ab: 9.04), MySQL, APT, … </li></ul><ul><li>Wird stark gepusht (Cannonical, GNU) </li></ul><ul><li>94% Pythoncode </li></ul><ul><li>Vergleichsweise langsam </li></ul>
  17. 18. Bazaar Überblick <ul><li>Plug-Ins: Eclipse, IDEA, Netbeans, Vim, TextMate, Emacs, … </li></ul><ul><li>Protokolle: HTTP, SFTP, FTP, ssh, email </li></ul><ul><li>Revision-Naming: r1, r2, ... </li></ul><ul><li>Lokales Branching möglich </li></ul><ul><li>Online Repository: Launchpad </li></ul>
  18. 19. Verteilte VCS Vergleich <ul><li>Unterschiede marginal </li></ul><ul><li>Spezieller Anwendungsfall oder eigener Geschmack entscheidet </li></ul><ul><li>Bei großen Repos => git </li></ul><ul><li>Agiles arbeiten einfacher als mit Perforce/Subversion </li></ul>
  19. 20. Zusammenfassung

×