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

Überblick über aktuelle Versionsmanagementsysteme

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