Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git



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

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

Praktikum Ingenieurinformatik (PI)

Medieninformatik Praktikum. Jens Rademacher

git Änderungen verwalten mit git

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

Versionsverwaltung mit git. Christoph Knabe FB VI

Linux Cafe Referent: Bernd Strößenreuther

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

Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

Eine Einführung in das verteilte Quelltextverwaltungssystem Git

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

Von SVN zu Git. Daniel Willmann cbna

Moodle aktuell halten mit Git

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

Apache Subversion (SVN)

Seminar. Bachelor Wirtschaftsinformatik

Git - Fast Version Control System

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

Arbeiten mit dem Versionsverwaltungssystem. Jannik Kramer Proseminar Werkzeuge für das wissenschaftliche Arbeiten

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

Versionsverwaltung. Seminar Softwareentwicklung in der Wissenschaft Robert Wiesner

Git-Grundlagen für Entwickler. Thomas Claudius

Erfolgreicher Ums9eg auf Git

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

Einführung in Subversion

Konfigurationsdateien mit Git verwalten

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

Git II. Dezentrale Versionsverwaltung im Team

Versionskontrollsysteme

Git in großen Projekten

Versionsverwaltung mit SVN

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

Deployment Deployment Seite 1 / 25

WOZU VERSIONSKONTROLLE?

Versionkontrolle mit git

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

Git-Workflows im Alltag

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Dezentrale Versionsverwaltung

Versionierung und Bugtracking mit Git(Hub)

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen

Versionsverwaltung mit Eclipse. PR1 - Medizinische Informatik (IMB) Dennis-Immanuel Czogalla

Einführung in Subversion. Tutorium SWP

Enes Kurnaz, Oliver Nagel Institut für Mathematik und Informatik. Versionsverwaltung mit Git

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

Änderungen verwalten mit git

peer-to-peer Dateisystem Synchronisation

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

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

Sourcecodeverwaltung

EGit: Die effiziente Git- Integration in Eclipse

Einführung in Git. master. Initial commit

Spiel, Spaß und Spannung mit Git

Versionskontrolle mit Subversion

Dr. Klaus Körmeier BlueBridge Technologies AG

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

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

Programmieren 2 06 Git-Teamwork und Egit

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme

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

Synchronisation von redundanten Datenbeständen

eprints-anwendertreffen 2013

Versionsverwaltung mit git

HSR git und subversion HowTo

Software Engineering

Einfu hrung in Subversion mit TortoiseSVN

Verteilte Versionskontrolle mit Mercurial (DVCS)

Software Engineering in der Praxis

Versionsverwaltung mit Mercurial für Einsteiger

Versionskontrolle mit Mercurial. Michael Gebetsroither

Fakultät für Informatik Praktische Einführung in die Versionsverwaltung mit Eclipse

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

Wie benutzt man TortoiseSVN

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

Konfiguration Management System. Konfiguration Management System. Versionierung Parallele Entwicklung Workspace

Versionsmanagement mit Subversion

Quellcodeverwaltung mit SubVersion

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

Powermanager Server- Client- Installation

Kurzanleitung zu. von Daniel Jettka

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Multisite Setup. mit Nutzung von Subversion. Drupal Voice Chat

Having fun with GIT. Chris Wewerka. Software Development Specialist

Versionsverwaltung mit SVN

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

Simulationsprojekte einfacher mit Subversion und Trac

Backups einfach gemacht mit Backup Manager

Prof. Dr. Marko Boger. Prof. Dr. Christian Johner. Versionsmanagement

Julius Plenz. Valentin Haenel. Git. Verteilte Versionsverwaltung für Code Dokumente. 2. Auflage. Open Source Press

Revisionskontrollsystem GIT

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Intranet Moodle

Betriebssystem Windows - SSH Secure Shell Client

Versionsverwaltung mit GIT

Versionsverwaltung mit Git

Ablauf. Redaktions-Schulung. Schulungs Unterlagen. Typo3

TortoiseGit Step by Step Step 1: git for windows herunterladen und installieren.

KURZANLEITUNG CLOUD OBJECT STORAGE

Transkript:

Einführung in Verteilte Versionskontrollsysteme am Beispiel von Git Diplominformatiker (BA), Git Benutzer seit 2009 Daniel Böhmer Leibniz Institut für Troposphärenforschung 8. März 2012

Verteilte Versionskontrollsysteme/Git Ablauf Über Versionskontrollsoftware Fortschritt durch Git & Co. interaktiv/nach Bedarf: Grundlagen Git mit Demo Einsatzszenarien/Workflows fürs IfT Zwischenfragen erwünscht Englisches Vokabular Unterlagen elektronisch verfügbar

Was ist VCS? Engl. version control system (VCS) Management von Änderungen an einer/vielen Datei[en] Vorrangig Text, aber auch Binärdateien Beispiele: RCS nur 1 Datei, nur lokal CVS, MS Visual SourceSafe, SVN viele Dateien Mecurial (Hg), Bazaar, Git verteilte VCS

Wie funktioniert VCS? Repository ( Archiv ) anlegen Dateien anlegen/bearbeiten Kleine Einheiten von Änderungen zu Commits zusammenfassen Beispiele: Fix bug in start script, 1 Datei bearbeitet Add button to edit user profile, 2 Datei bearbeitet, 1 Datei hinzugefügt Menge an Commits [0..n] = Revision (bestimmter Versionsstand)

Was soll VCS leisten? Dateien vergleichen und Änderungen protokollieren Frühere Versionen von Dateien wiederherstellen divergierende Entwicklungspfade pflegen Zusammenführen von parallelen Entwicklungen Lokale Entwicklung vereinfachen und gemeinschaftliche Entwicklung ermöglichen

Was leisten Subversion & Co.? Dateien versionieren Mehrere Autoren an einem Repository Zentrale Verwaltung der Nutzer Locking für Dateien gegen gleichzeitiges Editieren Verschiedene Entwicklungszweige (SVN: schwierig zu verwenden)

Grenzen von Subversion & Co. Server basiert Kein Arbeiten ohne Zugang zum Netzwerk Arbeitstempo abhängig von Netz und Server Keine automatische Lösung von Konflikten bei gleichzeitigen Änderungen in einer Datei Ausgerichtet auf lineare Entwicklungsstruktur

Verteilte VCS Engl. distributed version control system (DVCS) Kein Server notwendig Jeder»Client«hat gesamte History Neue Commits lokal gespeichert und benannt Austausch von Commits im 2. Schritt»offizielles«Repository durch Popularität

Fortschritte durch VCS Vollständig lokales Arbeiten Nichtlineare Versionshistorie automatisiertes Zusammenführen von parallelen Änderungen Integration von projektfremden Entwicklern Mehrwert für Entwickler ohne eigenen Account Zugang zu Änderungen fremder Entwickler Integration ohne Administrationsaufwand

Woher kommt Git? Bedarf durch Entwicklergemeinschaft des Linux Kernels Vorhandene Systeme (Bitkeeper, CVS, SVN ) unbrauchbar Komplette Neuentwicklung von Linus Torvalds Ziele: verteilter Workflow, sicher, schnell

Philosophie von Git Alle Dateien in 1 Ordner, Git Daten in /.git Änderungen mit beliebigem Editor durchführen Git Kommandos erreichbar via Terminal (empfohlen) Grafische Oberfläche für Windows/Linux/Mac Plug In für Editor, z.b. EGit für Eclipse

Demo

Git visualisiert server pull Conflict?! push push pull merge commit commit Alice commit Bob

Gitk: Merging

Gitk: Branching

Forken ist gut Forken (Entwicklungszweig spalten) Voraussetzung für Weiterentwicklung Zusammenführen der Zweige sehr einfach

Merge für Fortgeschrittene: Rebase Merge: Pfade bleiben nachvollziehbar, Folge: zusätzlicher Merge Commit Rebase: Pfad wird nachträglich»linearisiert«bildquelle: Git Community Book

Git ist sicher.

Git ist sicher. Datenübertragung über etablierte Protokolle SSH HTTP(S) E Mail Einfache Datenstruktur Warnungen vor destruktiven Aktionen Trennung von History und Datenspeicher: gelöschte Objekte verbleiben 14d im Speicher

Git ist schnell.

Git ist schnell. Performance am Bsp. des Linux Gits (ab 2005): `git clone $URL`: 8m 29s `git blame README`: ~1s `git status` mit 37'000 Dateien: ~1s `git log wc l` (4'140'020 Zeilen): 9,7s `git log n 100 grep i linux`: <<1s `git pull` für 100 Commits von Github: 6,4s

Arbeiten mit externem Projekt DWD Manuelles Update Koordinator push Zentrales IfT-Repo pull/push Entwickler A pull/push Entwickler B

Private Eigenentwicklungen pflegen Zentrales IfT-Repo pull/push Entwickler A pull/push Rechner von Entwickler Z master pull private

Versionsnummern: SHA1 Hashes Nichtlinear keine inkrementellen Nummern SHA1: kryptografischer Hash Algorithmus Eindeutige Prüfsumme (Vgl.: Quersumme) über Inhalt aller Dateien Ordnerstruktur Commit Metadaten wie Beschreibung, Autor etc. Lokal ermittelbar, weltweit eindeutig, 40 stellig, z.b. 582808e9abed50529fb9e7293a8f9eeda abkürzbar über die signifikanten Stellen: 5828

Start Einmalig pro Rechner: `git config global user.name "Daniel Böhmer"` `git config global user.email "boehmer@tropos.de"` Pro Projekt: Neues Repo anlegen: `git init` ODER Vorhandenes Repo klonen: `git clone ssh://meinserver.tropos.de/var/git/projekt.git`

Viel Spaß mit Git! Folien Link Liste Beispiel Repositories zum Herunterladen Auf www.daniel boehmer.de/git talk/