Subversion für Anfänger und solche, die es noch werden wollen ;)

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims cims.
Einführung in Subversion (SVN)
PC-Senioren Ludwigsburg
für das Schulnetz der BS Roth
Vorgehensweise Website Besprechung am 11. Februar 2008 Gründung und Partnerunternehmen der Wirtschaftsuniversität Wien.
PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN) PBUGG 2009, A. Schmidt.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Datenbankzugriff im WWW (Kommerzielle Systeme)
Software(technik)praktikum Tutorial: Subversion (SVN)
Browser Von Anna Zietek und Peter Paulus Verwendung Aufbau Anwendung.
Fachpraktikum Graphische Benutzungsoberflächen Sommersemester 2008 Steffen Koch, Christoph Müller, Guido Reina, Christiane Taras, Michael Wörner Versionsverwaltung.
FTP – File Transfer Protocol
Information und Technik Nordrhein-Westfalen Single Sign On mit CAS Düsseldorf, Single Sign On für Webanwendungen am Beispiel von CAS.
Allgemein Batchdatei/en erstellen Was ist das?? Wie geht das??
1 NetWork File System © April 2002, G. Hellberg Network File System Konfiguration und Einsatz.
Werkzeuge und Softwareumgebung von Christian Michele.
Teamorganisation: Versionsverwaltung
1 WS 2012 Software-Engineering II Versionsverwaltung.
Concurrent Versions System
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
PHP Pakete und Beispiele Webengineering Robert Lemke.
Jetzt lernen wir.
Netzwerke Peer-to-Peer-Netz Client-Server Alleinstehende Server
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
GIT und Redmine Übung.
Software-Projektführung
Aichinger Christian, Strasser Jürgen
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
08. September 2010Entwicklungsstrategien in Liferay 1 Christian Krause, URZ FSU Jena, IDM-Arbeitsgruppe.
JavaScript.
MDA – Framework AndroMDA
Warum brauche ich ein CMS – Content Management System?
Versionsverwaltung für Visual Studio .NET mit Subversion
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
Andreas Rehm und Rainer Wolf Jeder Benutzer hält ein vollständiges Repository aller Dateien und Commits Zentrale Repositories sind möglich aber.
Computer in einer vernetzten Welt
Systemaufbau / Komponenten
Client-Server Systeme
Gliederung Was ist Linux? Desktop Environment Die Shell Tux His
Cooperation unlimited © Zühlke Juni 2009 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
HORIZONT 1 XINFO ® Das IT - Informationssystem Eclipse Plugin HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Softwaretechnikpraktikum: Vorlesung 2
Hallo, die folgende Bildserie zeigt, wie man das Programm IrfanView (kostenlos unter herunterlädt. Erst geht man auf die IrfanView Startseite.
Herbert Walter PIXINSIGHT 1.7 SPEICHERN JPEG Herbert Walter
Concurrent Versions System
Dedizierte Systeme Typo3 Installation Dedizierte Systeme – Typo3 Installation – Christoph Stollwerk IT Zertifikat der Philosophischen Fakultät WS 2008/2009.
Zero Administration Kit für Microsoft® Windows® Jörg Kramer University Support Center.
Einführung OpenSTA. Agenda - über OGVIT - Warum Lasttests - Was ist OpenSTA - Wie arbeitet OpenSTA - Skripte für OpenSTA - OpenSTA Collectors - Tests.
CMS Content-Management-Systeme (CMS), dienen der Verwaltung und Pflege von Dokumenten und Inhalten in Inter- und Intranetanwendungen. Den Entwickler oder.
Marco Behnke Git free & open source, distributed version control system Git.
Linux Primary Domain Controller mit
->Prinzip ->Systeme ->Peer – to – Peer
Ein Vortrag von Marcel Siegert und Philipp Hoffmann
Installation, Konfiguration, Online stellen, Zugriff © by Lars Koschinski 2003.
CODA - Installation Installation der Binärdateien –Venus: Client-Programm –Vice: Server-Programm –Für Windows existiert eine Alpha-Version (Coda Client.
Datenbanken im Web 1.
Webserver, Apache und XAMPP
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Maya Kindler 5c. SEO- URL = Suchmaschinenoptimierung Alles was auf der Website steht wird von einer Suchmaschine gefunden und angezeigt. Alle Daten sind.
Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.
Der Taskmanager ist Bestandteil des Betriebssystems, der als Prozessmanager Prozessmanager unter anderem die aktuell laufenden Programme und Prozesse.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Universität der Bundeswehr München 1 Seminar – DBMS für spezielle Anwendungen Seminar DBMS für spezielle Anwendungen Versionen und Varianten.
, Jens Rettig1 Einsatz von Versionsverwaltungstools im ORACLE – Umfeld Dipl.-Inform. Jens Rettig
Redetext für 15 Jahre Dig it! ???. Anlässlich zu unserem 15 jährigen Bestehen der dig it! GmbH möchte ich Euch begrüßen... Zu unserem 15 jährigen Jubiläum.
Das SVN Eclipse Plugin. Wofür ist SVN gedacht? Nutzung von SVN mit Eclipse Perspektive einrichten Repository einbinden Mit dem Repository arbeiten Konflikt.
Orxonox SVN Subversion in Orxonox: ORXONOX DevelopmentFinished Versions trunk Maintainer Version Almost always running branches Developer Version Copies.
WS2016: Container von A bis Z
 Präsentation transkript:

Subversion für Anfänger und solche, die es noch werden wollen ;) Alexander R. Krug – krugar@ipsi.fhg.de

Module dieses Vortrages Was ist Versionierung und wozu ist das gut? Terminologie Warum Subversion und nicht CVS? Wie benutze ich Subversion? Wie setze ich einen Server auf? Wie migriere ich von CVS nach Subversion? Links

Versionierung Was und Warum?

Versionsmanagement Versionsmanagement ermöglicht einfach Abspeichern ohne zu überschreiben. Man hat also zu einer Datei nicht nur die zuletzt gespeicherte Version, sondern auch alle vorher abgespeicherten Versionen. Das Verwalten paraleller Versionen und das Zusammenführen derselben ist die eigentliche Aufgabe solcher Systeme.

checkout? commit? head? wtf? Die wichtigsten Begriffe aus der wundervollen Welt des Versionsmanagements in einfachem Deutsch

checkout? commit? head? wtf? repository - Die Datensammlung, die svn für einen verwaltet working copy - Die lokale Kopie der Daten aus dem repository, an der man arbeitet und Veränderungen vornimmt. revision – Zustand des repositories zu einem Zeitpunkt. Jeder commit (kommt später) erzeugt eine neue revision. head - Die aktuellste revision trunk - Der Stamm des Versionsbaumes branch – Ein Ast im Versionsbaum tag – revision mit nem Namenszettel dran ;)

wtf? contd. checkout - Sich eine Verzeichnisstruktur mit Daten vom repository holen, macht man üblicherweise einmal am Anfang. update - Sich die Neuerungen zwischen dem mit "checkout" Heruntergeladenen und dem aktuell auf dem repository Verfügbaren herunterladen. Damit ist die working copy auf dem aktuellen Stand (wenn man lokal Daten verändert hat, können merges norwendig werden, siehe unten) merge – Einen Konflikt zwischen dem aktuellen head und einer veralteten, aber lokal veränderten Datei auflösen commit - lokal veränderte daten in das repository hochladen (und damit eine neue revision der daten als head in das repository legen). Das geht nur, wenn im head keine veränderungen sind, die man damit überschreiben würde. Gibt es auf repository-seite veränderungen, muss man diese erst per merge lokal einpflegen, bevor man commiten kann

merge nochmal genauer

Subversion vs. CVS Warum nicht auch das nehmen, was alle anderen schon seit Jahren verwenden?

Warum lieber Subversion? „atomic commits“ – Wenn eine Transaktion mit dem Subversion Server unterbrochen wird, bevor sie zuende ist, passiert genau garnichts. Man kann Dateien und Verzeichnisse umbenennen und verschieben und Subversion kommt damit zurecht Performanteres Datenbank-Backend saubere C-API und anderer Kleinkram

Benutzung und Integration Subversion Benutzung und Integration

Integration in Eclipse und IDEA IntelliJ IDEA 5.0 bringt eine native Unterstützung mit, für 4.x gibt es ein Plugin Für Eclipse 3.x und 2.2+ gibts ein Plugin namens Subclipse ( subclipse.tigris.org ) Womit wohl die meisten JAVA Entwickler glücklich werden sollten...

Standalone Clients Für Windows: TorquoiseSVN Für alle (dank JAVA): SmartSVN

Ye good ole command line Zu haben für Windows, Mac, BSD, Solaris und verschiedene Linuxe Zum Scripten und für Anhänger der Alten Schule Achtung: für ANT 1.6.x gibts noch keinen brauchbaren ChangeLog Task (was mich den restlichen Nachmittag noch beschäftigen wird >.< )

svnserve oder mod_dav_svn Oder einfach ohne Server?

svnserve svnserve ist ein standalone deamon Läuft standardmäßig auf tcp port 3690 Unterstützt User-Authentifizierung mit CRAM-MD5 Verzeichnisbasierte Zugriffsrechte nur mit schmutzigen Tricks Zugriff via URL á la svn://find-meinen.server.net Kann unter Unix per inetd gestartet werden Unter Windows gibts ein kleines Hilfsprogramm namens SVNservice, das erlaubt es, den Server als Service zu starten (das spart einem das hässliche DOS-Fenster)

svnserve + SSH svnserve kann auch zusammen mit einem SSH-System benutzt werden, in dem Fall wird der Server-Prozess vom SSH-Server gestartet Vorteil: Quellcode wird verschlüsselt übertragen Nachteil: Da der Server-Prozess unter dem mit SSH authentifizierten Betriebssystem-Benutzer gestartet wird, kann man sich hier mittels Dateirechten vorzüglich in den Fuß schiessen... Zugriff via URL á la svn+ssh://find-meinen...

mod_dav_svn Plugin für Apache 2.x Authentifizierung erfolgt über Apache, daher auch feingranularere Zugriffsrechte möglich Zugriff via URL á la http(s)://find... Interessant für Server mit mehreren Projekten in einem Repository oder an Stellen mit restriktiveren Firewalls

Ohne Server Für den Hausgebrauch kann man auch auf den Server verzichten. Der svn Client kann über einen file://-URL direkt auf das Repository zugreifen Vorteil: weniger arbeit beim aufsetzen Nachteil: wenn mehrere Rechner (zB über Samba oder NFS) Zugriff auf das Repository haben sollen, kann man das Berkerly DB Backend nicht nutzen und muss mit dem FSFS Backend Vorlieb nehmen. (es sei denn, man hat eine Share, die strikte POSIX-konforme file locks bietet...)

Oder doch lieber... alle? Man kann mehrere Server-Prozesse gleichzeitig auf einem Repository laufen lassen, die Datenbank kommt damit zurecht.

was es kann und was es braucht cvs2svn was es kann und was es braucht

cvs2svn Braucht Phyton 2.0+, GNU Sort und entweder den RCS co Client (schneller) oder einen CVS Client (langsamer, aber es gibt Spezialfälle, wo der nötig ist) Kann nur mit direktem Dateisystem-Zugriff auf das CVS Repository benutzt werden (!) Kann ganze Subversion-Repositories oder Dumpfiles erstellen, oder Daten in ein existierendes Repository einpflegen Auswahlmöglichkeiten umfassen head-only, trunk-only, einzelne Unterverzeichnisse, einfach alles, oder oder...

Links Das hier als Website für alle Schreibfaulen: http://krugar.de/stuff/svn-intro/ Allgemeine Entscheidungshilfen für Versionierungssoftware auf Deutsch: http://better-scm.berlios.de/ Subversion: http://subversion.tigris.org Das Subversion-Buch: http://svnbook.red-bean.com/ TortoiseSVN: http://tortoisesvn.tigris.org/ SmartSVN: http://www.smartcvs.com/smartsvn/ Subclipse: http://subclipse.tigris.org

Aufwachen, ich bin fertig :P FIN Aufwachen, ich bin fertig :P