Upload
andreas-schreiber
View
1.094
Download
1
Embed Size (px)
DESCRIPTION
TechTalk von Stefan Pielicke (DLR Köln-Porz, 10.09.2008) über verteilte Versionsmanagementsysteme.
Citation preview
Folie 1TechTalk > 10.09.2007
Überblick über aktuelle Versionsmanagementsysteme
Stefan Pielicke <[email protected]>
Tech Talk, DLR Köln-Porz, 10.09.2008
TechTalk > 10.09.2008
Folie 2
Outline
Zentralisierte Systeme
Perforce
Verteilte Systeme
Git
Mercurial
Bazaar
Zusammenfassung
TechTalk > 10.09.2008
Folie 3
TechTalk > 10.09.2008
Folie 4
Zentralisierte VCSAufbau
RepoServer
Bob Alice
commit
editupdatecheckout
…
TechTalk > 10.09.2008
Folie 5
Zentralisierte VCSSysteme
CVS (CVSNT, OpenCVS)
Subversion
Perforce
ClearCase
Visual SourceSafe
…
TechTalk > 10.09.2008
Folie 6
PerforceÜberblick
Kommerzielles System (Perforce Software)
Sonderlizenzen für Edu und OSS Bereich
Focus auf Stabilität und Skalierbarkeit
Workspace Konzept
TechTalk > 10.09.2008
Folie 7
PerforceÜberblick
Eigenen Defect-Tracking System
API-Anbindung für:
Ruby
C++
Perl
Python
Proxies für (pseudo-) verteiltes Arbeiten
TechTalk > 10.09.2008
Folie 8
PerforceÜberblick
Graphische Tools für gesamten Ablauf (p4v)
Vielfältige Trigger
Daemons
Beständiger Server Kontakt nötig (edit, revert)
TechTalk > 10.09.2008
Folie 9
Verteilte VCSSysteme
Git
Mercurial
Bazaar
Arch
Monotone
SVK
Darcs
BitKeeper
…
TechTalk > 10.09.2008
Folie 10
Verteilte VCSArbeitsweise
Unterscheidet sich grundsätzlich von zentraler Arbeitsweise:
Lokale Sandbox
Keine vorgegebene Infrastruktur
Offline Arbeiten
Branching und Merging funktionieren „automatisch“
TechTalk > 10.09.2008
Folie 11
Verteilte VCSArbeitsweise
Main
Bob
Alice
Linus
Automatische Builds und Tests
clone
clone
Edit
Edit
pull
pullpush
TechTalk > 10.09.2008
Folie 12
Verteilte VCSGemeinsamkeiten
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
TechTalk > 10.09.2008
Folie 13
gitÜberblick
Projektstart: Frühjahr 2005
Projekte: Linux Kernel, X.Org, Rails, OLPC
Schnell!!
Sehr Umfangreich (> 150 Kommandos)
git-blame
git-cherry-pick
TechTalk > 10.09.2008
Folie 14
gitEinsatz
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
TechTalk > 10.09.2008
Folie 15
MercurialÜberblick
Projektstart: Frühjahr 2005
Projekte: OpenSolaris, NetBeans, Xine, OpenJDK,…
Zu 77% in Python geschrieben
TortoisHg
TechTalk > 10.09.2008
Folie 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
TechTalk > 10.09.2008
Folie 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
TechTalk > 10.09.2008
Folie 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
TechTalk > 10.09.2008
Folie 19
Verteilte VCSVergleich
Unterschiede marginal
Spezieller Anwendungsfall oder eigener Geschmack entscheidet
Bei großen Repos => git
Agiles arbeiten einfacher als mit Perforce/Subversion
TechTalk > 10.09.2008
Folie 20
Zusammenfassung