Überblick über aktuelle versionsmanagementsysteme

20
Folie 1 TechTalk > 10.09.2007 Überblick über aktuelle Versionsmanagementsysteme Stefan Pielicke <[email protected]> Tech Talk, DLR Köln-Porz, 10.09.2008

Upload: andreas-schreiber

Post on 23-Jan-2015

1.094 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Überblick über aktuelle Versionsmanagementsysteme

Folie 1TechTalk > 10.09.2007

Überblick über aktuelle Versionsmanagementsysteme

Stefan Pielicke <[email protected]>

Tech Talk, DLR Köln-Porz, 10.09.2008

Page 2: Überblick über aktuelle Versionsmanagementsysteme

TechTalk > 10.09.2008

Folie 2

Outline

Zentralisierte Systeme

Perforce

Verteilte Systeme

Git

Mercurial

Bazaar

Zusammenfassung

Page 3: Überblick über aktuelle Versionsmanagementsysteme

TechTalk > 10.09.2008

Folie 3

Page 4: Überblick über aktuelle Versionsmanagementsysteme

TechTalk > 10.09.2008

Folie 4

Zentralisierte VCSAufbau

RepoServer

Bob Alice

commit

editupdatecheckout

Page 5: Überblick über aktuelle Versionsmanagementsysteme

TechTalk > 10.09.2008

Folie 5

Zentralisierte VCSSysteme

CVS (CVSNT, OpenCVS)

Subversion

Perforce

ClearCase

Visual SourceSafe

Page 6: Überblick über aktuelle Versionsmanagementsysteme

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

Page 7: Überblick über aktuelle Versionsmanagementsysteme

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

Page 8: Überblick über aktuelle Versionsmanagementsysteme

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)

Page 9: Überblick über aktuelle Versionsmanagementsysteme

TechTalk > 10.09.2008

Folie 9

Verteilte VCSSysteme

Git

Mercurial

Bazaar

Arch

Monotone

SVK

Darcs

BitKeeper

Page 10: Überblick über aktuelle Versionsmanagementsysteme

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“

Page 11: Überblick über aktuelle Versionsmanagementsysteme

TechTalk > 10.09.2008

Folie 11

Verteilte VCSArbeitsweise

Main

Bob

Alice

Linus

Automatische Builds und Tests

clone

clone

Edit

Edit

pull

pullpush

Page 12: Überblick über aktuelle Versionsmanagementsysteme

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

Page 13: Überblick über aktuelle Versionsmanagementsysteme

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

Page 14: Überblick über aktuelle Versionsmanagementsysteme

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

Page 15: Überblick über aktuelle Versionsmanagementsysteme

TechTalk > 10.09.2008

Folie 15

MercurialÜberblick

Projektstart: Frühjahr 2005

Projekte: OpenSolaris, NetBeans, Xine, OpenJDK,…

Zu 77% in Python geschrieben

TortoisHg

Page 16: Überblick über aktuelle Versionsmanagementsysteme

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

Page 17: Überblick über aktuelle Versionsmanagementsysteme

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

Page 18: Überblick über aktuelle Versionsmanagementsysteme

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

Page 19: Überblick über aktuelle Versionsmanagementsysteme

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

Page 20: Überblick über aktuelle Versionsmanagementsysteme

TechTalk > 10.09.2008

Folie 20

Zusammenfassung