Subversion Ein verteiltes Konfigurationsmanagement-System



Ähnliche Dokumente
FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Versionskontrolle mit Subversion

Software Engineering in der Praxis

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

Einführung in Subversion

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

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

Einführung in Subversion. Tutorium SWP

WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

10. Konfigurationsmanagement

Sourcecodeverwaltung

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

Versionsmanagement mit Subversion

Versionsverwaltung mit SVN

Versionsverwaltung mit Mercurial für Einsteiger

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

Praktikum Ingenieurinformatik (PI)

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

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

Git - Fast Version Control System

Von SVN zu Git. Daniel Willmann cbna

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

Moodle aktuell halten mit Git

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

Subversion. Einstieg in die. Versionskontrolle

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

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

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

Versionsverwaltung für r Visual Studio.NET mit Subversion

Internet online Update (Mozilla Firefox)

Apache Subversion (SVN)

Kurzanleitung zu. von Daniel Jettka

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

1 Vorraussetzungen. 2 Installiere Eclipse. FS 2015 Herausgabe: Dr. A. L. Schüpbach, D. Sidler, Z. István Departement Informatik, ETH Zurich

Lokale Installation von DotNetNuke 4 ohne IIS

Framework zur Unterstützung von Unit-Tests

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

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Konfigurationsdateien mit Git verwalten

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

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

Git II. Dezentrale Versionsverwaltung im Team

Dokumentenverwaltung im Internet

Versionsverwaltung mit CVS bzw. Subversion

Wie benutzt man TortoiseSVN

Git-Workflows im Alltag

NODELOCKED LIZENZ generieren (ab ST4)

Deployment Deployment Seite 1 / 25

Anbindung des Onyx Editors an das Lernmanagementsystem OLAT Anwendungsdokumentation

Subversion - Versionsverwaltungssystem

Versionierung und Bugtracking mit Git(Hub)

Info-Veranstaltung zur Erstellung von Zertifikaten

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

Lizenzen auschecken. Was ist zu tun?

Anleitung über den Umgang mit Schildern

AutoCAD Dienstprogramm zur Lizenzübertragung

Erfahrungen mit Hartz IV- Empfängern

HSR git und subversion HowTo

Bildbearbeitung für BFV-Homepage mit IrfanView. IrfanView ist ein kostenloses Bildbearbeitungsprogramm. Einen geprüften Download finden Sie hier:

Installation Microsoft Lync 2010 auf Linux

Wie halte ich Ordnung auf meiner Festplatte?

GITS Steckbriefe Tutorial

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

ecaros2 - Accountmanager

Dokumentation zur Versendung der Statistik Daten

CVS-Einführung. Sebastian Mancke,

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

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

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

Verteilte Versionskontrolle mit. Einführung und Nutzung von SVK FrOSCon 24./25. Juni 2006

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen

Wir machen neue Politik für Baden-Württemberg

KeePass Anleitung. 1.0Allgemeine Informationen zu Keepass. KeePass unter Windows7

Update von XBRL Publisher auf XBRL Publisher 1.7.2

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

Wie gestaltet man Online-Umfragen mit SurveyMonkey?

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

Finder > 'Programme' > 'Dienstprogramme' > 'Terminal'

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Einfu hrung in Subversion mit TortoiseSVN

Installation von pocket*strepla und erste Schritte mit dem Programm

Gezielt über Folien hinweg springen

Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

MARCANT - File Delivery System

BEDIENUNGSANLEITUNG: EINREICH-TOOL

Online-Dateienablage und Datenaustauschdienst Box.net Stand: September 2011

teamsync Kurzanleitung

Process4.biz Release Features Übersicht. Repository. Das Schützen von Diagrammen wurde optimiert (check-in, check-out)

Software Release Notes

Netzwerkversion PVG.view

f Link Datenbank installieren und einrichten

BlueJ und Subversion Inhaltsverzeichnis

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Dokumentation owncloud PH Wien

Transkript:

Subversion Ein verteiltes Konfigurationsmanagement-System Prof. Dr. Uwe Aßmann Softwaretechnologie Institut für Software- und Multimediatechnik (SMT) Fakultät für Informatik, TU Dresden http://st.inf.tu-dresden.de Version 07-0.1, July 02 subversion Prof. Uwe Aßmann 1

Softwarekonfiguration Components Component Model Repository Workspace Product model Version model Variant model Version Selection Component Selection Component Selection Variant Selection Process Composition languages Build support Process support Consistency control Protection Human Collaboration Merging Traceability Remote work Prof. U. Aßmann subversion 2

Version/Variant/Zusammenarbeits-Universum Historical (Versions) Logical (Variants) Cooperative Prof. U. Aßmann subversion 3

Die Versionsdimension Baum unbestimmter Tiefe Jede Modifikation generiert ein Kind oder einen Zweig 0.2 0.3 0.2.1.1 0.3.1.1 1.0 0.3.1.2 1.1 Prof. U. Aßmann subversion 4

Die Versionsdimension Verschmelzen ist möglich 0.2 0.2.1.1 0.3 0.3.1.1 1.0 0.3.1.2 1.1 Prof. U. Aßmann subversion 5

Variantendimension: Ein Variantenuniversum n-dimensionaler Raum mit k Werten pro Parameter Alpha i486 PowerPC Processor OS Mac Linux Win NT X Sun News Window system Prof. U. Aßmann subversion 6

Zusammenarbeitsdimension: Views and Models Bei paralleler Bearbeitung werden Sichten inkonsistent diff Modell (Repository)...... Commit (checkin)... Sicht (workspace) Sicht (workspace) checkout update Sicht (workspace)... Prof. U. Aßmann subversion 7

Ketten von Sichten auf Repositories (svn) Programmierer haben eine Sicht von der Testversion, die eine Sicht von der offiziellen Version ist Sichten werden Zweige (branches) genannt, wenn sie über mehrere Versionen hinweg parallel entwickelt werden......... Programmierer- Sicht Test Offiziell (repository) Prof. U. Aßmann subversion 8

Einfache Sichten in cvs Nur Tiefe 1 möglich... Commit (checkin)...... Development workspace... update (checkout)...... repository Prof. U. Aßmann subversion 9

Was sind nun die Bugs in cvs? Behandlung von Teilbäumen schwierig kein atomares Commit von Teilbäumen kein move. move == remove oldfile; add newfile. Versionsgeschichte geht immer verloren kein copy Repräsentation von Zweigen nur im Repository Kein Verschmelzen von Zweigen im gleichen Repository noch von verschiedenen Repositories Keine Unterstützung für long-running changes (Ketten von Sichten) Schwer, das Repository zu bewegen Alle Sichten werden inkonsistent Prof. U. Aßmann subversion 10

Subversion Was wir immer schon von einem K-Werkzeug haben wollten subversion Prof. Uwe Aßmann 11

Hilfe svn help svn <command> --help svnadmin help svnadmin create --help Prof. U. Aßmann subversion 12

Initialisierung eines Repository svnadmin create /home/ua1/svn/ontologies1 ls /home/ua1/svn/ontologies1 README.txt conf dav db format hooks locks cat format 3 conf: configuration of svn server Auschecken eines Repositories svn checkout. file:///home/ua1/svn/ontologies1 ls.svn/ creates a metadata subdirectory.svn README.txt entries prop-base/ text-base/ wcprops/ empty-file format props/ tmp/ Prof. U. Aßmann subversion 13

Commit und Rollback Zum sauberen Arbeiten in parallelen Kontexten braucht man ein Transaktionskonzept mit ACID Merkmalen Atomizität Consistency Integrität Durability svn commit svn revert Prof. U. Aßmann subversion 14

Addieren von Dateien zum Repository svn add models-mda.lyx brainstorm.lyx svn import /home/ua1/tmp/ontologies-1 file:///home/ua1/svn/ontologies1 -m "importing all files" Danach Commit Danach neues Auschecken möglich cd /home/ua1/tmp/newdir svn checkout file:///home/ua1/svn/ontologies1. Prof. U. Aßmann subversion 15

Move in Sicht und im Modell svn copy <subtree> svn move <subtree> svn delete <subtree> Prof. U. Aßmann subversion 16

Info über Sichten svn log svn diff: vergleicht mit jungfräulichen Kopien in.svn arbeitet inkrementell auch auf binären Dateien svn cat svn list (svn ls) svn status Prof. U. Aßmann subversion 17

Beyond Transactions Falls andere in parallel zurückschreiben (committen), kann man die eigene, nun inkonsistent gewordene Arbeitskopie (Sicht) auf den neuesten Stand bringen svn update Das ist mehr als was Datenbanken tun! Aktualisierungen können automatisch erfolgen oder schiefgehen (Konflikte) Prof. U. Aßmann subversion 18

Meldungen des Aktualisierungsalgorithmusses alles gut gegangen U foo. file wieder konsistent A file. alles gutgegangen, file ist neu ins Repository aufgenommen worden D file. file wurde gelöscht. R file. file wurde ersetzt G file. Es gab zwar eigene Modifikationen von file, aber die waren harmlos fehlgeschlagen C file. Konflikt konnte nicht automatisch gelöst werden (überlappende Änderungen). Manueller Eingriff nötig.. Mehr als Datenbanken! svn status meldet den Zustand für alle Files und Dirs in der Sicht Prof. U. Aßmann subversion 19

Konfliktauflösung wie bei cvs oder mit 3 speziellen files file.mine file.<old-revision>: the BASE revision from which file.mine was copied file.<new-revision>: the HEAD revision which was committed in parallel Kopiere eines der Files auf file und sage dann svn resolve file Prof. U. Aßmann subversion 20

Benutzung übers Web Gesteuert durch die URL file:// http:// (webdav). apache module mod_dav_svn https:// (encrypted webdav) svn://. svnserver läuft auf dem Server, lauscht an Port 3690 svn+ssh:// Prof. U. Aßmann subversion 21

Der svn Cache Der svn Cache erlaubt es, die BASE Version, die in.svn gespeichert wird, zu vergleichen spät zurückzuschreiben Vermeidet direkte commits über das Netzwerk (was nicht vorhanden sein könnte). Commits werden in das Metadatendirectory.svn geschrieben. alle Kommandos funktionieren trotzdem Prof. U. Aßmann subversion 22

Merge über mehrere Views svn merge ist eine Kombination von diff und patch es führt zunächst ein svn diff durch und wendet dann die patches an Da svn eine lineare Versionsnummerung über Sichten und Sichtenkopien durchführt, können direkt Sichten miteinander verglichen und verschmolzen werden svn merge -r 4:7 file:///home/ua1/svn/ontologies-1 Ermittelt parallele Änderungen in Hauptsicht und Sichtenkopie svn merge dry-run Zeigt, was getan werden soll Prof. U. Aßmann subversion 23

Wie man einen long run macht subversion Prof. Uwe Aßmann 24

Wie man einen long-run macht Lege eine Sicht an Lege immer neue Versionen in der Sicht an Verschmelze die HEADs der Sichten mit svn merge Die lineare Nummerung schafft einfache Vergleichbarkeit Das geht auch stackartig (Sichten in Ketten) Prof. U. Aßmann subversion 25

Das svn Entwicklungsmuster Ketten von Sichten (Branches) Das svn copy Kommando ist so mächtig, dass nun Sichten und Zweige alle im view und im Repository dargestellt werden können Typische Aufteilung des Projektbaumes: Nebensichten in /home/ua1/tmp/ontologies1/branches. /home/ua1/tmp/ontologies1/branches/testversion. /home/ua1/tmp/ontologies1/branches/testversion-mary. /home/ua1/tmp/ontologies1/branches/testversion-frank Snapshots (tagged branches) in /home/ua1/tmp/ontologies1/tags. /home/ua1/tmp/ontologies1/tags/alpha-release. /home/ua1/tmp/ontologies1/tags/beta-release Hauptsicht in /home/ua1/tmp/ontologies1/trunk Prof. U. Aßmann subversion 26

Ketten von Sichten Kopiere die Hauptsicht als neue Nebensicht svn copy /home/ua1/tmp/ontologies1/trunk /home/ua1/tmp/ontologies1/branches/new-view Friere eine Nebensicht als Snapshot ein svn copy /home/ua1/tmp/ontologies1/branches/view1 /home/ua1/tmp/ontologies1/tags/alpha-release Verschmelze Sicht Programmierer 1 und 2 svn merge /home/ua1/tmp/ontologies1/branches/view-horst /home/ua1/tmp/ontologies1/branches/view-maria Geht auch auf Repositories svn copy http:///home/ua1/svn/trunk/ontologies1 http://home/ua1/svn/ontologies1/branches/new-view Prof. U. Aßmann subversion 27

Wie man lokal auf einem Laptop offline arbeitet Lege eine Sicht für den Laptop an, in <project>/branches Arbeite auf ihr, auch offline Änderungen werden für die Sicht in den Cache gelegt Falls online, schreibe in das globale Repository Falls Verschmelzung gewünscht, verschmelze die Server-Sicht in <project>/branches/my-view mit <project>/trunk Das bedetuet: trunk und branches werden wie Teilprojekte behandelt und können sowohl auf Server wie auch auf Laptop liegen Prof. U. Aßmann subversion 28

Repositories Berkeley-DB nicht portable von Maschine zu Maschine nicht auf AFS, NFS! svn create fs-type bdb <path> FSFS im Filesystem portabel svn create fs-type fsfs <path> Prof. U. Aßmann subversion 29

Kritik an Subversion Noch immer kein Variantenmanagement keine Komponentenselektion keine Unterstützung von automatischen Builds Prof. U. Aßmann subversion 30

Lob The original design team settled on some simple goals. They didn't want to break new ground in version control methodology, they just wanted to fix CVS. na ja, man kann schon wesentlich mehr! Branchmanagement (Ketten von Sichten) long runs ACID Web Prof. U. Aßmann subversion 31

Info http://subversion.tigris.org http://svnbook.red-bean.com/ debian Dokumentation Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato. Version Control with Subversion. Creative Commons Attribution License. Prof. U. Aßmann subversion 32

Wie man zu Subversion wechselt cvs2svn prcs2svn vss2svn Prof. U. Aßmann subversion 33

Tools Kwiki with subversion backend svk decentralized version system subissue subversion issue tracking scmbug bug tracking ankhsvn (Visual Studio plugin) psvn.el for emacs rapidsvn supervision subclipse, Svn4Eclipse for Eclipse Prof. U. Aßmann subversion 34

The End Prof. U. Aßmann subversion 35