Ü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.388 Aufrufe

Veröffentlicht am

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

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.388
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
12
Aktionen
Geteilt
0
Downloads
13
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Ü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

×