Subversion - Versionsverwaltungssystem



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

Software Engineering in der Praxis

Subversion. Einstieg in die. Versionskontrolle

Einführung in Subversion

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

Versionskontrolle mit Subversion

Sourcecodeverwaltung

Praktikum Ingenieurinformatik (PI)

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

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

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

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

Apache Subversion (SVN)

Subversion. Quellcodeverwaltung a la Opensource. Matthias Fischer. Technical Expert.NET Tieto, JOSI / Microsoft Matthias.Fischer@tieto.

WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

Versionsverwaltung mit Mercurial für Einsteiger

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

Einführung in Subversion. Tutorium SWP

git Änderungen verwalten mit git

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

Von SVN zu Git. Daniel Willmann cbna

Einfu hrung in Subversion mit TortoiseSVN

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

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

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Versionsverwaltung mit SVN

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

SVN Windows Howto. Inhaltsverzeichnis. 1 Revisionsgeschichte

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

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

Moodle aktuell halten mit Git

Apache Subversion (SVN)

8. Dokumentenverwaltung mit CVS eine Einführung

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

Software Engineering in der Praxis

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

Wie benutzt man TortoiseSVN

Git - Fast Version Control System

Versionierung und Bugtracking mit Git(Hub)

Versionsmanagement mit Subversion

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

Frank Budszuhn. Subversion ~ --.. Galileo Press

IAWWeb PDFManager. - Kurzanleitung -

Kurzanleitung zu. von Daniel Jettka

Git in großen Projekten

HSR git und subversion HowTo

CVS-Einführung. Sebastian Mancke,

snom Auto-Provisioning

PROJEKTVERZEICHNIS EINRICHTEN

Git II. Dezentrale Versionsverwaltung im Team

Deployment Deployment Seite 1 / 25

Versionsverwaltung für r Visual Studio.NET mit Subversion

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

Versionskontrolle mit Subversion

Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

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

Inkrementelle, verschlüsselte Backups mit duplicity und duplicity-backup.sh. Chris Fiege 13. Juni 2015

Versionskontrolle mit Subversion

Software Configuration Management (SCM)

Versionskontrolle mit Mercurial. Michael Gebetsroither

Subversion. von Stefan Arndt, Christian Autermann und Dustin Demuth. 5. November 2009

Möglichkeiten des Parallelbetriebs der VR-NetWorld Software Parallelbetrieb VR-NetWorld Software 4.4x und Version 5.0 ab der 2. Beta!

Werkzeuge für das Softwarekonfigurationsmanagement

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

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

Konfigurationsdateien mit Git verwalten

Versionsverwaltung mit SVN

Anleitung zur Lizenzaktualisierung. Plancal nova 7.x

Netbeans 6.1 mit SVN Server unter Debian etch mit Windows Clients

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Framework zur Unterstützung von Unit-Tests

Medieninformatik Praktikum. Jens Rademacher

Besprechung Übung 1 & Vorstellung Übung 2

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

Versionsverwaltung mit git. Christoph Knabe FB VI

KURZANLEITUNG CLOUD OBJECT STORAGE

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

SFTP SCP - Synology Wiki

Update / Inbetriebnahme domovea Server. Update/Inbetriebnahme domovea Server Technische Änderungen vorbehalten

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

Quellcodeverwaltung mit SubVersion

Installation Hardlockserver-Dongle

GIT & SVN. Rheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Datenmanagement und -exploration Prof. Dr. T. Seidl

Administrator Handbuch

Branching und Merging mit Visual Studio Team System

12. Dokumente Speichern und Drucken

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

Multisite Setup. mit Nutzung von Subversion. Drupal Voice Chat

Git-Workflows im Alltag

Transkript:

Subversion - Versionsverwaltungssystem Was kommt nach CVS? Daniel Jahre daja@rocklinux.org - p. 1/36

Zitat If C gives you enough rope to hang yourself, think of Subversion as a sort of rope storage facility. -- Brian W. Fitzpatrick - p. 2/36

Übersicht - p. 3/36

Wozu Versionskontrolle? typischer Fileserver Schreibkonflikt Locking Locking 2 Kopieren-Verändern-Mischen Kopieren-Verändern-Mischen 2 andere Modelle Subversion Features - p. 4/36

Wozu Versionskontrolle? Wozu Versionskontrolle? typischer Fileserver Schreibkonflikt Locking Locking 2 Kopieren-Verändern-Mischen Kopieren-Verändern-Mischen 2 andere Modelle Subversion Features Dateien sollen von mehreren Personen bearbeitet werden Änderungen an den Dateien sollen nachvollziehbar sein Änderungen sollen rückgängig gemacht werden können Unterschiedliche Versionen der Dateien sollen verwaltet werden (branches) Wir betrachten Systeme mit zentraler Dateiverwaltung - p. 5/36

typischer Fileserver Wozu Versionskontrolle? typischer Fileserver Schreibkonflikt Locking Locking 2 Kopieren-Verändern-Mischen Kopieren-Verändern-Mischen 2 andere Modelle Subversion Features - p. 6/36

Schreibkonflikt Wozu Versionskontrolle? typischer Fileserver Schreibkonflikt Locking Locking 2 Kopieren-Verändern-Mischen Kopieren-Verändern-Mischen 2 andere Modelle Subversion Features - p. 7/36

Locking Wozu Versionskontrolle? typischer Fileserver Schreibkonflikt Locking Locking 2 Kopieren-Verändern-Mischen Kopieren-Verändern-Mischen 2 andere Modelle Subversion Features einfachster Ansatz Sally sperrt die Dateien die sie bearbeiten möchte bis sie fertig ist Probleme: Andere werden am Arbeiten behindert. (Extremfall: Locking + Urlaub) Unötige Serialisierung falsches Gefühl von Sicherheit (zwecks Absprachen und ähnlichem) - p. 8/36

Locking 2 Wozu Versionskontrolle? typischer Fileserver Schreibkonflikt Locking Locking 2 Kopieren-Verändern-Mischen Kopieren-Verändern-Mischen 2 andere Modelle Subversion Features - p. 9/36

Kopieren-Verändern-Mischen Wozu Versionskontrolle? typischer Fileserver Schreibkonflikt Locking Locking 2 Kopieren-Verändern-Mischen Kopieren-Verändern-Mischen 2 andere Modelle Subversion Features jeder erstellt eine Arbeitskopie (working copy) es wird parallel gearbeitet beim commit können Konflikte auftreten Konflikte müssen manuell gelöst werden das System hilft dabei - p. 10/36

Kopieren-Verändern-Mischen 2 Wozu Versionskontrolle? typischer Fileserver Schreibkonflikt Locking Locking 2 Kopieren-Verändern-Mischen Kopieren-Verändern-Mischen 2 andere Modelle Subversion Features - p. 11/36

andere Modelle Wozu Versionskontrolle? typischer Fileserver Schreibkonflikt Locking Locking 2 Kopieren-Verändern-Mischen Kopieren-Verändern-Mischen 2 andere Modelle Subversion Features verteilte Repositories BitKeeper svk arch bzw. Derivate zentrales Repository mit öffentl. Patchverwaltung Submaster - p. 12/36

Subversion Features Wozu Versionskontrolle? typischer Fileserver Schreibkonflikt Locking Locking 2 Kopieren-Verändern-Mischen Kopieren-Verändern-Mischen 2 andere Modelle Subversion Features Zentrales Repository Versionskontrolle für Verzeichnisse Echte Versionskontrolle (auch bei Dateiumbenennung) Atomare Commits Versionskontrolle für Metadaten Konsistentes Handling für Binär- und Textdateien Effizientes Branching und Tagging - p. 13/36

Unterstützte Protokolle Anlegen der Arbeitskopie Die Flags normaler Arbeitsablauf Konflikt lösen Konflikt lösen 2 Kommandos für die Versionsinformation Branching & Tagging Merging einfach wechseln - p. 14/36

Unterstützte Protokolle Unterstützte Protokolle Anlegen der Arbeitskopie Die Flags normaler Arbeitsablauf Konflikt lösen Konflikt lösen 2 Kommandos für die Versionsinformation Branching & Tagging Merging einfach wechseln http:// (WebDAV) https:// nutzt den apache2 webserver svn:// Subversioneigenes Protokoll fast doppelt so schnell wie WebDAV eigener Server svn+ssh:// das svn Protokoll über ssh getunnelt file:// - p. 15/36

Anlegen der Arbeitskopie svn checkout svn co Unterstützte Protokolle Anlegen der Arbeitskopie Die Flags normaler Arbeitsablauf Konflikt lösen Konflikt lösen 2 Kommandos für die Versionsinformation Branching & Tagging Merging einfach wechseln svn co svn://svn.rocklinux-consulting.de/rock-linux/trunk rock-test A rock-test/architecture A rock-test/architecture/arm A rock-test/architecture/arm/preconfig.in A rock-test/architecture/arm/archtest.out A rock-test/architecture/arm/kernel.conf.m4 A rock-test/architecture/arm/gcc-options A rock-test/architecture/arm/archtest.sh A rock-test/architecture/arm/config.hlp A rock-test/architecture/arm/config.in... U rock-test Checked out revision 3519. - p. 16/36

Die Flags Unterstützte Protokolle Anlegen der Arbeitskopie Die Flags normaler Arbeitsablauf Konflikt lösen Konflikt lösen 2 Kommandos für die Versionsinformation Branching & Tagging Merging einfach wechseln A: Die Datei wurde dem Arbeitsverzeichnis hinzugefügt (added) U: Die Datei wurde vom Server aktualisiert (updated) D: Die Datei wurde im Arbeitsverzeichnis gelöscht (deleted) R: Die Datei wurde im Arbeitsverzeichnis ersetzt (replaced) G: Die Datei wurde gemischt (merged) C: Ein Konflikt besteht zwischen Repository und Arbeitsverszeichnis - p. 17/36

normaler Arbeitsablauf Unterstützte Protokolle Anlegen der Arbeitskopie Die Flags normaler Arbeitsablauf Konflikt lösen Konflikt lösen 2 Kommandos für die Versionsinformation Branching & Tagging Merging einfach wechseln svn checkout (co) (einmalig) svn update (up) vor dem Arbeiten svn add svn copy svn move svn delete editieren ;-) svn commit (abhängig vom Repository) svn status, svn diff eventuell Konflikte auflösen - p. 18/36

Konflikt lösen Unterstützte Protokolle Anlegen der Arbeitskopie Die Flags normaler Arbeitsablauf Konflikt lösen Konflikt lösen 2 Kommandos für die Versionsinformation Branching & Tagging Merging einfach wechseln Subversion legt von der betroffenen Datei 3 Versionen an datei.ralt datei.mine datei.rneu eine Möglichkeit den Konflikt zu beseitigen, durch Kopieren der gewünschten Datei auf das Original durch svn resolved datei, subversion mitteilen, dass der Konflikt behoben wurde. - p. 19/36

Konflikt lösen 2 Unterstützte Protokolle Anlegen der Arbeitskopie Die Flags normaler Arbeitsablauf Konflikt lösen Konflikt lösen 2 Kommandos für die Versionsinformation Branching & Tagging Merging einfach wechseln $ cat sandwich.txt Top piece of bread Mayonnaise Lettuce Tomato Provolone <<<<<<<.mine Salami Mortadella Prosciutto ======= Sauerkraut Grilled Chicken >>>>>>>.r2 Creole Mustard Bottom piece of bread - p. 20/36

Kommandos für die Versionsinformation Unterstützte Protokolle Anlegen der Arbeitskopie Die Flags normaler Arbeitsablauf Konflikt lösen Konflikt lösen 2 Kommandos für die Versionsinformation Branching & Tagging Merging einfach wechseln svn log (zeigt Revisionen und commit messages an) svn diff (zeigt Änderungen im patch format an) svn info (zeigt Informationen über das aktuelle Verzeichnis an) svn list (listet dateien in einem Repository auf ohne sie auszuchecken) svn blame (zeigt zu jeder Zeile eines Dokumentes die Revisionsummer an bei der sie zuletzt geändert wurde, so lässt sich leicht feststellen, wer für bestimmte Änderungen zuständig war) - p. 21/36

Branching & Tagging Unterstützte Protokolle Anlegen der Arbeitskopie Die Flags normaler Arbeitsablauf Konflikt lösen Konflikt lösen 2 Kommandos für die Versionsinformation Branching & Tagging Merging einfach wechseln ist im eigentlichen Sinne nicht implementiert wird mittels svn copy abgebildet die empfohlene Struktur trunk/ branches/ tags/ die Kopie enthält die komplette History des Originals - p. 22/36

Merging $ svn merge -r 343:344 http://svn.example.com/repos/calc/trunk U integer.c Unterstützte Protokolle Anlegen der Arbeitskopie Die Flags normaler Arbeitsablauf Konflikt lösen Konflikt lösen 2 Kommandos für die Versionsinformation Branching & Tagging Merging einfach wechseln $ svn status M integer.c - p. 23/36

einfach wechseln Unterstützte Protokolle Anlegen der Arbeitskopie Die Flags normaler Arbeitsablauf Konflikt lösen Konflikt lösen 2 Kommandos für die Versionsinformation Branching & Tagging Merging einfach wechseln $ cd calc $ svn info grep URL URL: http://svn.example.com/repos/calc/trunk $ svn switch http://svn.example.com/repos/calc/branches/my-calc-branch U integer.c U button.c U Makefile Updated to revision 341. $ svn info grep URL URL: http://svn.example.com/repos/calc/branches/my-calc-branch - p. 24/36

Anlegen von Repositories Hookskripte Backup und Wiederherstellung mod_dav_svn vs svnserve svnserve mod_dav_svn - p. 25/36

Anlegen von Repositories svnadmin create subversion-uni-howto Anlegen von Repositories Hookskripte Backup und Wiederherstellung mod_dav_svn vs svnserve svnserve mod_dav_svn ls subversion-uni-howto conf/ dav/ db/ format hooks/ locks/ README.txt - p. 26/36

Hookskripte Anlegen von Repositories Hookskripte Backup und Wiederherstellung mod_dav_svn vs svnserve svnserve mod_dav_svn können an verschiedenen Stellen vor und nach dem Commit ausgeführt werden ls hooks/ post-commit.tmpl post-revprop-change.tmpl pre-commit.tmpl Anwendungen Zugriffsrechte überprüfen Integritätstest Commitmails versenden pre-revprop-change.tmpl start-commit.tmpl - p. 27/36

Backup und Wiederherstellung svnadmin dump > dumpfile svnadmin load < dumpfile svndumpfilter Anlegen von Repositories Hookskripte Backup und Wiederherstellung mod_dav_svn vs svnserve svnserve mod_dav_svn - p. 28/36

Übersicht mod_dav_svn vs svnserve Anlegen von Repositories Hookskripte Backup und Wiederherstellung mod_dav_svn vs svnserve svnserve mod_dav_svn Feature Apache + mod_dav_svn svserve Authentifizierung alle Möglichkeiten die Apache unterstützt CRAM-MD5 oder SSH Nutzerverwaltung eigene Nutzerverwaltung eigene Nutzerverwaltung oder ssh accoun Zugriffsrechte auf komplettem Repo oder pro Verzeichnis auf komplettem Repo Verschlüsselung durch SSL durch ssh Interoperabilität teilweise durch andere WebDAV Klienten keine Webansicht einfache Ansicht eingebaut, ViewCVS ViewCVS Geschwindikeit im Vergleich langsamer im Vergleich schneller Setup komplex einfach - p. 29/36

svnserve Anlegen von Repositories Hookskripte Backup und Wiederherstellung mod_dav_svn vs svnserve svnserve mod_dav_svn Konfigurationsdatei in config/ [general] password-db = userfile realm = example realm # anonymous users can only read the repository anon-access = read # authenticated users can both read and write auth-access = write - p. 30/36

mod_dav_svn Anlegen von Repositories Hookskripte Backup und Wiederherstellung mod_dav_svn vs svnserve svnserve mod_dav_svn in der Apache Konfigurationsdatei... LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so... <Location /repos> DAV svn SVNPath /absolute/path/to/repository </Location>... <Location /svn> DAV svn # any "/svn/foo" URL will map to a repository /usr/local/svn/foo SVNParentPath /usr/local/svn </Location> - p. 31/36

Links Credits Fragen? - p. 32/36

Links Links Credits Fragen? http://subversion.tigris.org - Die Subversion Homepage http://svnbook.red-bean.org - Das Subversion Buch http://www.tu-chemnitz.de/ jahre/subversion-uni-howto/subversion-uni-howt Beispielrepositories http://svn.rocklinux-consulting.de/rock-linux http://websvn.samba.org/ http://svn.collab.net/repos/svn/trunk http://svn.collab.net/viewcvs/svn/ - p. 33/36

Credits The images and some examples in this document are taken from the Subversion Book http://svnbook.red-bean.org Thanks to Antje Schubert and Ines Pfauch for reviewing the slides Links Credits Fragen? - p. 34/36

Links Credits Fragen? Fragen? - p. 35/36

Vielen Dank für ihre Aufmerksamkeit Links Credits Fragen? - p. 36/36