Versionsverwaltung. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009

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

Versionsverwaltung mit SVN

NT-Seminarvortrag am 11. Dezember Einführung in die Versionsverwaltung CVS. von Gordon Cichon

Versionskontrolle mit Subversion

Thomas Rau (mit Material von Peter Brichzin) Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten

Software Engineering in der Praxis

Versionsverwaltung. Seminar Softwareentwicklung in der Wissenschaft Robert Wiesner

Einführung in Subversion

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

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

SVN in use. Roger Burkhardt Fachhochschule Nordwestschweiz Hochschule für Technik Institut für Geistes- und Naturwissenschaft

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

Einführung in Subversion

Framework zur Unterstützung von Unit-Tests

Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

JUnit (Version 4.x) Framework zur Unterstützung von Unit-Tests. Wir verwenden nicht JUnit 3.x. Ideen dahinter. Test-Methode

Versionsverwaltung mit git. Christoph Knabe FB VI

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

Tool-Chain. Übung. Eclipse, SVN, Ant, Cobertura, Metrics Labor "Software Engineering Experiment" Sebastian Meyer und Kai Stapel

Versionsmanagement mit Subversion

Versionskontrolle mit Subversion

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

Software Engineering in der Praxis

Einführung in Subversion

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Enterprise PHP Tools

8. Dokumentenverwaltung mit CVS eine Einführung

CVS-Einführung. Sebastian Mancke,

Einführung in Subversion

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

Softwaretechnik (Allgemeine Informatik) Überblick

Einführung in Subversion

Revisionskontrollsystem GIT

Revision Control System. Versionskontrolle

Subversion. Einstieg in die. Versionskontrolle

Apache Subversion (SVN)

Versionsverwaltung mit git

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

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

Versionsverwaltung mit SVN

Seminar. Bachelor Wirtschaftsinformatik

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Versionskontrolle: Subversion und Git

Software Engineering

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

Einführung in Subversion. Tutorium SWP

Fachpraktikum Graphische Benutzungsoberflächen Wintersemester 2010/2011

Einfu hrung in Subversion mit TortoiseSVN

Software(technik)praktikum: SVN-Tutorial

Medieninformatik Praktikum. Jens Rademacher

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

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

Versionsverwaltung von Softwareartefakten. Dr. Thorsten Arendt Marburg, 05. November 2015

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Enterprise PHP Tools

Subversion. 17. Oktober Subversion. Norbert Perk. Warum Versionsverwaltung? Wie funktioniert. Was ist Subversion? Subversion- Server.

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

Linux Cafe Referent: Bernd Strößenreuther

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

Versionsverwaltungssysteme

Versionsverwaltung mit CVS bzw. Subversion

Versionsverwaltung mit Mercurial für Einsteiger

Apache Subversion (SVN)

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

Quellcodeverwaltung mit SubVersion

3. Versions- und Konfigurationsmanagement. Typischer Weg der Software-Entwicklung

Programmieren 1 11 Versionsverwaltung mit Git - Grundlagen -

Das Concurrent Versions System (CVS)

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

Frank Budszuhn. Subversion ~ --.. Galileo Press

Concurrent Versions System (CVS)

Versionsmanagement. Software(technik)praktikum: Vorlesung 2: Versionsmanagement

Versionsverwaltung für r Visual Studio.NET mit Subversion

Von SVN zu Git. Daniel Willmann cbna

Versionskontrollsysteme

SVN Windows Howto. Inhaltsverzeichnis. 1 Revisionsgeschichte

Versionskontrolle mit Subversion

Einführung in die Programmiertechnik

Moodle aktuell halten mit Git

Versionsverwaltung mit Subversion

Praktikum Ingenieurinformatik (PI)

Selbstverwaltung von Subversion Repositories

Praktische Softwaretechnologie Vorlesung 6

Sourcecodeverwaltung

Tutorium SS17 EINFÜHRUNG + BREAKOUT

Konfigurationsmanagement

Proseminar Unix-Tools CVS Daniel Weber & Zhen Zhang Betreuer: Volker Baier

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

Apache Subversion (SVN)

Klicken Sie, um das Format des Titeltextes zu bearbeiten

Einführung in Versions- und Konfigurationsmanagementsysteme

Fachpraktikum Graphische Benutzungsoberflächen Wintersemester 2007/08

Systemprogrammierung: Erste Schritte (P) Das Manpage-System (P) Versionsverwaltung mit Subversion (P)

Software Configuration Management (SCM)

an Hand eines Beispiels Konsole

C/C++-Programmierung

Versionsmanagement. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn

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

Adios CVS! Markus Schade

Transkript:

Versionsverwaltung Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009 Versionsverwaltung 1/22 2009-06-03

Inhalt Motivation RCS CVS SVN Dezentrale Systeme Versionsverwaltung 2/22 2009-06-03

Source-Code Verwaltung Ursprüngliches Problem Früher ging s doch schon mal! Warum denn jetzt nicht mehr? Was hab ich geändert?!? Versionsverwaltung 3/22 2009-06-03

Source-Code Verwaltung (2) Lösung Alte Versionen der Sourcen/Dokumente aufbewahren. Frage: Wie bewahrt man alte Versionen sinnvoll auf? Vielleicht: Kapitel-1_200905260831.tex, Kapitel-1_200905260914.tex, Kapitel-1_final.tex, Kapitel-1_really_final.tex??? Oder: mit spezialisierten Werkzeugen, wie RCS (Revision Control System), CVS (Concurrent Versions System), SVN (Subversion),... Versionsverwaltung 4/22 2009-06-03

Source-Code Verwaltung (3) Grundideen Arbeitskopie und verwaltete Versionen getrennt ( Repository ), erzeuge Versionsschritte durch vom Benutzer ausgelöste Aktionen ( Commit, Check-In ), speichere zu jeder Version nur die Änderungen gegenüber der vorigen Version, Zeitpunkt der Änderungen, (automatisch generierte) Versionsnummer, Kommentar des Bearbeiters,... Versionsverwaltung 5/22 2009-06-03

RCS (Revision Control System) Eigenschaften Urahn der Versionsverwaltungssysteme, Prinzip: sperre und bearbeite. Repository Name der normalen Datei X Name der RCS-Datei (Repository) X,v (oder RCS/X,v) Arbeitskopie und Repository liegen parallel im Dateisystem. Versionsverwaltung 6/22 2009-06-03

RCS (Revision Control System) (2) Operationen Auschecken (zum Ansehen / Compilieren; read-only): co [-r <revision>] <dateiname> Auschecken (zum Ändern, Lock setzen): co [-r <revision>] -l <dateiname> Änderungen einchecken (Lock löschen): ci -u <dateiname> Änderungen ansehen: rcsdiff [-u] <dateiname> Versionsverwaltung 7/22 2009-06-03

Verteiltes Entwickeln Situation Mehrere Personen entwickeln gleichzeitig ein (großes) Softwareprojekt weiter. Problem Wie können Konflikte beim Bearbeiten gleicher Dateien vermieden werden? Versionsverwaltung 8/22 2009-06-03

Verteiltes Entwickeln (2) Lösungsansätze Alle verwenden gleichen Source-Baum gegenseitiges Sperren = Vorgehen bei RCS. Jeder verwendet eigenen Source-Baum späteres Zusammenführen der Änderungen ( Merge ) = Vorgehen bei CVS. Versionsverwaltung 9/22 2009-06-03

Verteiltes Entwickeln (3) Idee bei CVS Jeder hat einen eigenen Satz Sourcen. Jeder ändert seine Sourcen lokal. Änderungen können an das (entfernte) Repository zurückgeschrieben werden. Änderungen anderer Entwickler können auf die eigenen Sourcen übertragen werden. Dabei können zwar nicht automatisch auflösbare Konflikte entstehen, aber niemals im Repository, nur in der Arbeitskopie einzelner Benutzer! Versionsverwaltung 10/22 2009-06-03

CVS (Concurrent Versions System) Source-Repository ${REP}/CVSROOT/... ${REP}/<module>/... Verwaltungsinfo RCS-Dateien für Paket <module> Anlegen eines CVS-Repositories $ mkdir ${REP} $ mkdir ${REP}/CVSROOT $ mkdir ${REP}/<module> Versionsverwaltung 11/22 2009-06-03

CVS (Concurrent Versions System) (2) Auschecken der Sourcen $ c v s d ${REP} checkout <module> Updaten der Sourcen $ cd <module> $ c v s [ n ] update [ l ] [< d a t e i >... ] Versionsverwaltung 12/22 2009-06-03

CVS (Concurrent Versions System) (3) Ändern der Dateien $ v i <d a t e i >... $ c v s [ n ] add <d a t e i / d i r e c t o r y >... $ c v s [ n ] remove <d a t e i / d i r e c t o r y >... Versionsverwaltung 13/22 2009-06-03

CVS (Concurrent Versions System) (4) Einchecken der Änderungen $ c v s [ n ] commit [ l ] [< d a t e i >... ] Änderungen ansehen $ c v s [ n ] d i f f [ l ] [ u ] [< d a t e i >... ] Versionsverwaltung 14/22 2009-06-03

CVS (Concurrent Versions System) (5) Verzeichnisse Verzeichnisse werden sofort zum Repository hinzugefügt: $ mkdir s r c $ c v s add s r c D i r e c t o r y /tmp/ p r o j /Module/ s r c added to the r e p o s i t o r y Sie werden für andere Bearbeiter erst sichtbar nach: $ c v s update d Verzeichnisse werden nie wieder gelöscht; leere Verzeichnisse können aber aus der Arbeitskopie entfernt werden durch: $ c v s update dp Versionsverwaltung 15/22 2009-06-03

CVS (Concurrent Versions System) (6) Großer Nachteil von CVS Umbenennen von Dateien geht nur so: $ mv o l d. c new. c $ c v s remove o l d. c $ c v s add new. c $ c v s commit Änderungsgeschichte von old.c ist bei new.c nicht mehr sichtbar! (Theoretisch auch möglich: Repository-Surgery ; gefährlich!) Versionsverwaltung 16/22 2009-06-03

CVS und SVN Hauptunterschied CVS versioniert jede Datei einzeln am gegebenen Ort (Ort-vor-Zeit-Prinzip), Beschreibung von Projektversionen nur mittels Datum oder Tags möglich, SVN versioniert immer das gesamte Repository (Zeit-vor-Ort-Prinzip), SVN-Revisionen immer für alle Dateien gleich. Versionsverwaltung 17/22 2009-06-03

CVS und SVN (2) Weitere Unterschiede Bei SVN können Kopien von Dateien mit gleicher Versionsgeschichte erstellt werden ( billige Kopie ), SVN kann auch Verzeichnisse verwalten, SVN erkennt die meisten Binärdateitypen automatisch (CVS: cvs add -kb image.png), SVN speichert sein Repository in einer Datenbank (fsfs oder Berkeley DB) ggf. Kompatibilitätsprobleme, Struktur des Quellbaums nicht sofort aus Repository erkennbar, Repository-Surgery kaum noch möglich, in SVN können einmal eingecheckte Dateien praktisch nicht rückstandsfrei wieder entfernt werden. Versionsverwaltung 18/22 2009-06-03

SVN (Subversion) Source-Repository In Datenbankformat innerhalb eines Verzeichnisses. Anlegen eines Repositories $ svnadmin c r e a t e f s t y p e f s f s db / path / to / r e p o s i t o r y Auschecken der Sourcen $ svn co f i l e : / / / path / to / r e p o s i t o r y [ / path / to / module ] Versionsverwaltung 19/22 2009-06-03

SVN (Subversion) (2) Dateien oder Directories hinzufügen/löschen $ svn add remove f i l e s... Einchecken der Änderungen $ svn commit f i l e s... Konflikte auflösen $ svn r e s o l v e d f i l e s... Versionsverwaltung 20/22 2009-06-03

Dezentrale Systeme Hauptunterschied Kein zentrales Repository! Jeder Benutzer hat eine Kopie des gesamten Repositorys viele Aktionen ohne Netzwerkzugriff möglich. Weitere Eigenschaften (Je nach konkretem Vertreter verschieden, meist nicht notwendigerweise mit Dezentralität verknüpft.) Offizielle Repositories nur per Konvention, kryptographische Sicherheit der Projektgeschichte, Vielfalt an Protokollen zur Repository-Synchronisation, Anbindung traditioneller Versionsverwaltungssysteme,... Versionsverwaltung 21/22 2009-06-03

Dezentrale Systeme (2) Typische Vertreter git (Linux-Kernel-Entwicklung), bazaar (kennt auch dedizierte zentrale Repositories),... Versionsverwaltung 22/22 2009-06-03