Versionsverwaltung. Seminar Softwareentwicklung in der Wissenschaft Robert Wiesner

Ähnliche Dokumente
Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

Von SVN zu Git. Daniel Willmann cbna

Praktikum Ingenieurinformatik (PI)

Einführung in Git. Dirk Deimeke. 19. August My own IT. ddeimeke (My own IT) Einführung in Git 19. August / 23

Versionskontrollsysteme. Uwe Berger & Markus Dahms <bralug@bralug.de>

Versionsverwaltung. Robert Wiesner. 13. März Inhaltsverzeichnis. 1 Inhaltsangabe 2. 2 Einleitung 2

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Medieninformatik Praktikum. Jens Rademacher

Versionsverwaltung mit git. Christoph Knabe FB VI

Mercurial. or how I learned to stop worrying and love the merge. Ted Naleid IAIK

Moodle aktuell halten mit Git

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

Versionierung und Bugtracking mit Git(Hub)

Torsten Flatter inovex GmbH. "Git.NET" gibt's nicht?

Linux Cafe Referent: Bernd Strößenreuther

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Apache Subversion (SVN)

Versionskontrolle. Verteilte Versionskontrollsysteme. Richard Madsack. 25. November Versionskontrolle. Richard Madsack.

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Versionskontrollsysteme

Subversion als Werkzeug in der Software-Entwicklung Eine Einführung. Tobias G. Pfeiffer Freie Universität Berlin

Die Projek*ools. Files, Git, Tickets & Time

Apache Subversion (SVN)

Versionsverwaltung für r Visual Studio.NET mit Subversion

eclipse - EGit HowTo

Eine Einführung in das verteilte Quelltextverwaltungssystem Git

Gitting started. Christian Neukirchen. 14dec2011

Konfigurationsdateien mit Git verwalten

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Git Eine Einführung. LinuxTag 2013, Berlin. Julius Plenz. 22. Mai 2013

Versionkontrolle mit git

Git - Fast Version Control System

Programmieren 2 06 Git-Teamwork und Egit

Versionsverwaltung mit Git

Versionskontrolle mit Subversion

Spiel, Spaß und Spannung mit Git

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

git Änderungen verwalten mit git

Git II. Dezentrale Versionsverwaltung im Team

Einführung in git. Johannes Gilger & Matthias Lederhofer. Rechen- und Kommunikationszentrum der RWTH Aachen Network Operation Center. 14.

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS Lehrstuhl i9, Prof. Dr. T.

Versionsverwaltung von Softwareartefakten. Dr. Thorsten Arendt Marburg, 06. November 2014

Git in großen Projekten

Seminar. Bachelor Wirtschaftsinformatik

Einführung in Subversion

git Alexander Bernauer Rico Schiekel

Dezentrale Versionsverwaltung

Versionskontrolle mit Mercurial. Michael Gebetsroither

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

SVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann

CVS. The open standard for version control. (Concurrent Versions System) Maik Zemann CVS

WOZU VERSIONSKONTROLLE?

Versionsmanagement mit Subversion

Sozio- Technische Systeme

Einführung in Subversion. Tutorium SWP

Zentrale und Dezentrale Versionsverwaltung in Open Source Projekten Konzeptvorstellung Masterarbeit

Git. Dezentrale Versionsverwaltung im Team Grundlagen und Workflows. Rene Preißel Björn Stachmann. 2., aktualisierte und erweiterte Auflage

Git Workshop. LiWoLi Florian Preinstorfer. Wolfgang Silbermayr

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]

Deployment Deployment Seite 1 / 25

Versionskontrolle mit Apache Subversion

Das Concurrent Versions System (CVS)

Dr. R. Guderlei exxcellent solutions gmbh Tim Felgentreff HPI. Versionsmanagement. Zentral oder Verteilt?

CVS-Einführung. Sebastian Mancke,

Verteilte Versionskontrolle mit Mercurial

Konfigurationsmanagement

Verteilte Versionskontrolle mit Mercurial (DVCS)

Software Engineering in der Praxis

git Workshop Matthias Beyer Hochschule Furtwangen University matthias. hs-furtwangen. de beyermatthias. de 19.

Versionsverwaltung mit Mercurial für Einsteiger

Versionsmanagement mit Subversion

Einstieg in Git. Lukáš Kubánek

Crashkurs Subversion / Trac / Provisioning. Jan Zieschang, , Berlin

Concurrent Versions System (CVS)

Versionskontrolle. Vortrag im Master-Praktikum MindStreams Sommersemester Michael Fiedler 30.

Eclipse und Java Einheit 05: Arbeiten im Team: CVS

Git-Workshop für Einsteiger

So#ware Engineering Konfigura0onsmanagement

Praktische Softwaretechnologie Vorlesung 6

Einführung in die Programmiertechnik

Einführung in die Softwaretechnik 10. Konfigurationsmanagement

Software Engineering 2 Versionsverwaltung

Iterativ. Inkrementell

Having fun with GIT. Chris Wewerka. Software Development Specialist

an Hand eines Beispiels Konsole

Wissenschaftliches Programmieren

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen

eprints-anwendertreffen 2013

Branching und Merging mit Visual Studio Team System

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

Revision Control System. Versionskontrolle

Konfigurationsmanagement mit Subversion, Maven und Redmine

Versionskontrolle. Warum?... Und vor allem: Womit?

Subversion und Trac. Michael Trunner. 23. Januar Fachschaft Informatik und Softwaretechnik Universität Stuttgart

Klicken Sie, um das Format des Titeltextes zu bearbeiten

Einfu hrung in Subversion mit TortoiseSVN

Versionsverwaltungssoftware: Ein Überblick

Wichtige Git-Befehle

Transkript:

Versionsverwaltung Seminar Softwareentwicklung in der Wissenschaft Robert Wiesner

Gliederung Motivation Allgemeines Varianten der Versionsverwaltung Versionierungssysteme Git als Versionierungssystem-Beispiel Zusammenfassung Diskussion 09.12.2010 Robert Wiesner 2 / 26

Ziele der Versionsverwaltung Inkrementelle Entwicklung von Versionen Verfügbarkeit der Historie Parallele Entwicklung von Branches (Zweigen) Integration von Versionen vieler Entwickler Nachvollziehbarkeit von Änderungen Koordinierte Entwicklung Effiziente Fehlerbehandlung und -suche 09.12.2010 Robert Wiesner 3 / 26

Zentrale Begriffe [LOE09] Version Control System (VCS) Revision Control System (RCS) Source Code Manager (SCM) Permutationen von revision, version, code, content, control, management, system 4 / 26

Zentrale Begriffe Das Repository als Datenbank Verwaltet Versionen von Daten Zeitlich geordnete Versionen als Historie Arbeitskopie: Datenversion in Bearbeitung Repository B A B 09.12.2010 Robert Wiesner 5 / 26

Arbeitsweise Aktualisiere/Initialisiere/Klone ein Repository Ändere Daten in der Arbeitskopie Aktualisiere das Repository (commit) B A A B 09.12.2010 Robert Wiesner 6 / 26

Arbeitsweise Lock Modify Write Verteilung über logische Einheiten Sperrobjekte nicht nebenläufig bearbeitbar Kein Zusammenführen (Merging) notwendig Copy Modify Merge Mehrere Arbeitskopien einer Datenversion Ermöglicht Verzweigung Erfordert gegebenenfalls Zusammführen 09.12.2010 Robert Wiesner 7 / 26

Lock Modify Write / Copy Modify Merge {,B,C} {A*,B,C} {B } {A,B,C} { } {A } {A,B,C} {A``} {B } {} {A } {A`} {A,B,C} {A,B,C} {A,B,C} {A,B,C} 09.12.2010 Robert Wiesner 8 / 26

Varianten der Versionsverwaltung Lokale Versionsverwaltung Einzelner Rechner Zentrale Versionsverwaltung Vernetzte Rechner Verteilte Versionsverwaltung Vernetzte Rechner 09.12.2010 Robert Wiesner 9 / 26

Lokale Versionsverwaltung Lokale Versionsverwaltung: Dateiorientiert Serielle Entwicklung In Büroanwendungen Für SIW eher uninteressant A 09.12.2010 Robert Wiesner 10 / 26

Zentrale Versionsverwaltung Client-Server-Architektur Ein Repository Streng hierarchisch Leicht Koordinierbar Parallele Entwicklung Beliebig viele Entwickler Beliebig viele Kopien A B B B 09.12.2010 Robert Wiesner 11 / 26

Verteilte Versionsverwaltung Ein Repository pro Entwickler Beliebig viele Entwickler Beliebig viele Kopien Kein Lock Modify Write Parallele Entwicklung Komplexe Koordination Zentrale Repositories möglich 09.12.2010 Robert Wiesner 12 / 26

Versionierungssysteme [BAE05] Lokale Versionierungssyteme SCCS (1972) SourceSafe ( => MS SourceSafe) Zentrale Versionierungssyteme Concurrent Version System (CVS, 1986) Subversion (SVN, 2004) Verteilte Versionierungssysteme MS Visual SourceSafe (komerziell, 1994) BitKeeper (kommerziell) Monotone Mercurial (hg) Git (2005) 09.12.2010 Robert Wiesner 13 / 26

Git als Versionierungssystem-Beispiel Eigenschaften von Git Verteiltes Versionierungssystem Copy Modify Merge Zentrale Elemente: Arbeitskopie Repository Arbeitskopie Repository 09.12.2010 Robert Wiesner 14 / 26

Zentrale Elemente Arbeitskopie Eine Datenkopie aus dem Repository Datensatz in Bearbeitung Repository Index Object Store a Arbeitskopie Index b Object Store 09.12.2010 Robert Wiesner 15 / 26

Repository Index Staging Area: Änderungen der Arbeitskopie im Repository speichern Schnittstelle zwischen Arbeitskopie und Repository Wesentliche Operationen Hinzufügen (git add <file>) Löschen (git rm <file>) Vergleichen (git diff <--cached>) b a 09.12.2010 Robert Wiesner 16 / 26

Repository Object Store Speichert Daten mit git commit Speichert Inhalte, keine Dateien (!= SVN) SHA1-Hash als Bezeichner Typen: Blobs Trees Commits Tags a C^ C b a 09.12.2010 Robert Wiesner 17 / 26

Zwischenfazit Verteiltes Versionierungssystem Arbeitskopie Repository Index Object Store git diff a b git diff --cached C^ C a b a 09.12.2010 Robert Wiesner 18 / 26

Arbeitsweise - Wiederholung Aktualisiere/Initialisiere/Klone ein Repository Ändere Daten in der Arbeitskopie Aktualisiere das Repository (commit) Hilfe: git help <cmd> B A A B 09.12.2010 Robert Wiesner 19 / 26

Arbeitsweise - Spezifisch Initialisiere/Klone ein Repository git init [<Ziel>] / git clone <Quelle> [<Ziel>] Arbeitskopie modifizieren Index aktualisieren (staging) git add [<Datei> {<Datei>}.] Repository aktualisieren git commit a b C^ C a b a 09.12.2010 Robert Wiesner 20 / 26

Branching / Merging Das Repository als Graph Commits und Branches als Knoten Beim Mergen ggf. Konflikte beheben Branch nur nach commit wechseln git checkout mybranch git add. git commit git branch mybranch A? git merge mybranch master git init git add. git commit git checkout master git add. git commit 09.12.2010 Robert Wiesner 21 / 26

Anwendungsbeispiel Live-Anwendung git checkout mybranch git add. git commit git branch mybranch A? git merge mybranch master git init git add. git commit git checkout master git add. git commit 09.12.2010 Robert Wiesner 22 / 26

Hilfe http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html 09.12.2010 Robert Wiesner 23 / 26

Zusammenfassung Zentrale und verteilte Versionierungssysteme Git als (gutes) Werkzeug für SIW Koordination bleibt wichtig Save early save often Erstelle ein Versionierungskonzept und halte es ein!!! 09.12.2010 Robert Wiesner 24 / 26

Literatur [LOE09]: Jon Loeliger, 2009, Version Control with Git, O Reilly git-webseite: http://git-scm.com/ [BAE05]: Stefan Baerisch, 2005, Versionskontrollsysteme in der Softwareentwicklung, Informationszentrum Sozialwissenschaften 09.12.2010 Robert Wiesner 25 / 26

Diskussion / Fragen git checkout mybranch git add. git commit git branch mybranch A? git merge mybranch master git init git add. git commit git checkout master git add. git commit 09.12.2010 Robert Wiesner 26 / 26

Optional - Zentrale Versionsverwaltung in Git HowTo: Zentrale Versionsverwaltung Nutze ein Repository ohne Arbeitskopie git init --bare Definiere das zentrale Repository git clone <bare> <Ziel> oder git remote add origin <bare> Synchronisiere Daten git push <origin [branch]> git pull 09.12.2010 Robert Wiesner X / Y