Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

36
Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims

Transcript of Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Page 1: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki

Nikolay NachevSeminar StuPro cims

14.07.2009

cims

Page 2: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 2cims

Übersicht 1/2I. Versionsverwaltung

Anwendung von Versionsverwaltungssystemen Versionierungsmethoden Versionierungsmodelle Einsatz von Versionsverwaltungssystemen Beispiele (RCS, CVS, SVN)

II. Subversion Entwicklung von Subversion SVN vs. CVS Subversion Architektur Umgang mit Subversion

Page 3: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 3cims

Übersicht 2/2

III. Wiki Die Geschichte Einführung Wiki-Engine (Wiki-Software) Wikitext Grundfunktionen Zusammenfassung

Page 4: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 4cims

Versionsverwaltung

Page 5: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 5cims

Anwendung von Versionsverwaltungssystemen

• Protokollierung von Änderungen

• Wiederherstellung einer alten Version einer Datei

• Koordinierung des gemeinsamen Zugriffs mehrerer Personen auf eine Datei

• Versionierung und Aktualisierung von– Quelltexten– Konfigurationsdateien– Dokumenten

Page 6: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 6cims

Versionierungsmethoden

• Lokale Versionsverwaltung– Versionierung von einzelnen Dateien– Kein Repository– Versionen eines Dokuments werden innerhalb des Dokuments

gespeichert

Page 7: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 7cims

Versionierungsmethoden

• Zentrale Versionsverwaltung– Ein Repository– Benutzer-Rechteverwaltung– Versionsgeschichte nur im

Repository vorhanden– Verwendet bei CVS und SVN

Zentrale Versionsverwaltung - https://wikibs.informatik.htw-dresden.de/swiki/index.php/Versionsverwaltungssysteme

Page 8: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 8cims

Versionierungsmethoden

• Verteilte Versionsverwaltung– Kein zentrales Repository– Jeder Benutzer hat eigenes

Repository– Versionsgeschichte verteilt

bei den Benutzern– Keine Konflikte, wenn

mehrere Benutzer eine Datei gleichzeitig ändern

Verteilte Versionsverwaltung - https://wikibs.informatik.htw-dresden.de/swiki/index.php/Versionsverwaltungssysteme

Page 9: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 9cims

Versionierungsmodelle – Das Problem

SVN The Book – Kapitel 1 Grund Konzepte –

Versionierungsmodelle - http://svnbook.red-bean.com/nightly/de/svn.basic.vsn-models.html

Page 10: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 10cims

Versionierungsmodelle

• Lock-Modify-Unlock– Keine gleichzeitige Bearbeitung von Dateien– Das Modell ist langsam– Falsches Gefühl von Sicherheit– RCS setzt das Modell ein

• Copy-Modify-Merge– Gleichzeitige Bearbeitung von Dateien– Deutlich schneller– Wird bei CVS und SVN eingesetzt

Page 11: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 11cims

Einsatz von Versionsverwaltungssystemen

Versionsverwaltungssysteme werden verwendet bei:– Softwareprojekten als Datenspeicher für Quelldateien– Verwaltung von Serverkonfigurationen– Content Management Systemen– Dokumentenverwaltung von allgemeinen Texten bis hin zu

Diplomarbeiten– Bildersammlungen– Musiksammlungen

Page 12: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 12cims

Beispiele - RCS

• RCS - Revision Control System– Lokale Versionsverwaltung– Versionierung von Dateien, Quelltext oder Dokumenten sehr bedingt– Benutzer dürfen Dateien nicht gleichzeitig bearbeiten

Page 13: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 13cims

Beispiele - CVS

• CVS - Concurrent Versions System– Zentrale Versionsverwaltung– Ausgereifte Versionierung von Dateien, Quelltext oder Dokumenten– Dateien dürfen von mehreren Benutzern gleichzeitig bearbeitet

werden

Page 14: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 14cims

Subversion SVN

Page 15: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 15cims

Entwicklung von Subversion

• Projekt begann im Jahr 2000

• Erst als Nachfolger von CVS

• Später als vollständig neues System

• Ähnliche Funktionalität wie CVS– Leichter Umstieg von SVN zu CVS

• Flexibilität

• Stabilität

Page 16: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 16cims

SVN vs. CVS

• Versioniert das gesamte Projekt und damit die gesamte Verzeichnisstruktur

• Lässt Umbenennung und Kopieren von Dateien und Verzeichnissen zu, ohne deren Historie zu verlieren

• Führt immer atomare Commits aus

• Funktioniert als Apache Erweiterung und als selbstständiger Server

• Verlustfreie Konvertierung eines CVS-Repositorys in ein SVN-Repository mittels cvs2svn

Page 17: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 17cims

Subversion Architektur

SubversionBuch - Frank Budszuhn http://www.subversionbuch.de/architektur.html

Page 18: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 18cims

Subversion Architektur

• Empfohlene Repository Aufteilung– trunk

Wird für die Hauptentwicklungslinie benutzt

– branches

Wird für eigene Entwicklungszweige benutzt

– tags

Hier werden die Momentaufnahmen des Projekts gespeichert (Projekt Release)

Page 19: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 19cims

Umgang mit Subversion

• Was ist eine Arbeitskopie

– Verzeichnis auf dem lokalen Rechner das eine Kopie des Repositories darstellt

– Enthält das .svn Verzeichnis

• Arbeitskopie herunterladen

– Als Projektteilnehmer

$ svn checkout https://stuproa-cims.googlecode.com/svn/trunk/ \ stuproa-cims –username username

– Anonym

$ svn checkout http://stuproa-cims.googlecode.com/svn/trunk/ \ stuproa-cims-read-only

Page 20: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 20cims

Umgang mit Subversion

• Änderungen an der lokalen Arbeitskopie vornehmen– Dateiänderung

Änderungen an Dateien, die sich in der lokalen Arbeitskopie befinden, können wie gewohnt vorgenommen werden.

– Verzeichnisbaumänderung

Verzeichnisbaumänderungen dagegen müssen durch den svn-Befehlsatz ausgeführt werden - Subversion muss bezüglich der geplanten Änderung benachrichtigt werden.

Page 21: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 21cims

Umgang mit Subversion

• Arbeitskopie aktualisieren– Falls Änderungen im Repository vorhanden sind – Wird mittels svn update ausgeführt

$ svn update

– Falls keine Konflikte auftreten, wird das Update automatisch von Subversion ausgeführt

– Sonst wird eine interaktive Konfliktlösung vorgeschlagen

Page 22: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 22cims

Umgang mit Subversion

• Arbeitskopie hochladen– Wenn in der Arbeitskopie Änderungen vorgenommen wurden, die

veröffentlichen werden sollen, stellt Subversion den Befehl svn commit zu Verfügung

$ svn commit geänderteDatei -m „Kommentar“

Page 23: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 23cims

Umgang mit Subversion

• Arbeitskopie im Repository verfolgen

Für jede Datei oder jedes Verzeichnis, das sich in dem Arbeitskopie-Verzeichnis befindet, merkt sich Subversion zwei wichtige Informationen:– Die Revisionsnummer der Dateien– Wann zuletzt die lokale Arbeitskopie im Repository synchronisiert

wurde. Das stellt eine Art Zeitstempel dar

Somit werden die folgende 4 Zustände bestimmt:1. Unverändert und aktuell2. Lokal geändert und aktuell3. Unverändert und veraltet4. Lokal geändert und veraltet

Page 24: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 24cims

Umgang mit Subversion

• Änderungen einer Datei verfolgen

Um die Änderungen an einer Datei zu verfolgen bietet Subversion den Befehl:

$ svn diff

an

• Änderungen rückgängig machen

Um die Änderungen rückgängig zu machen stellt Subversion den Befehl:

$ svn revert

zur Verfügung

Page 25: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 25cims

Umgang mit Subversion

• Konflikt Auflösung

Es gibt vier verschiedene Wege, wie ein Konflikt aufgelöst werden kann:

1. Aufschieben der Konfliktauflösung

2. Manuelle Konfliktauflösung

3. Verwerfen der Änderung zugunsten einer aktualisierten Revision aus dem Repository

4. Übergeben der eigenen Änderungen ins Repository

Page 26: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 26cims

Verzweigen, Zusammenführen, Etikettieren

• Verzweigen (Branching)

• Zusammenführen (Merging)

• Etikettieren (Tagging)

Visualisierung eines Subverions-Projekt http://de.wikipedia.org/wiki/Subversion_%28Software%29

Page 27: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 27cims

Wiki

Page 28: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 28cims

Wiki – Die Geschichte

• Ersten Wikis Mitte der 1990er Jahre

• Erst für Produktverwaltung in IT-Projekten

• Später als die größte Wissensdatenbank im Internet

• Die Informationen werden täglich aktualisiert

Page 29: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 29cims

Wiki

• Ein Wiki ist ein Hypertext-System

• Basiert oft auf einem vereinfachten Content Management System– Offenes Content Management System (CMS) System– Wiki-Software (Wiki-Engine)

• Inhalte können von Benutzern nicht nur gelesen, sondern auch geändert oder sogar erstellt werden– Zur Erstellung oder Bearbeitung der Inhalte wird die sogenannte

Wikitext Sprache verwendet

Page 30: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 30cims

Wiki-Engine

• Stellt eine CMS-System dar

Es existieren verschiedene Typen von Wiki-Engines:– MediaWiki

Baut auf Wikipedia-Engine auf, und bietet viele Funktionalitäten– MoinMoin

Python-basiertes Engine. Die Struktur ist Modular, daher leicht erweiterbar

Page 31: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 31cims

Wiki-Engine

• Weitere Wiki-Engines sind:– PhpWiki

PHP-basiertes Engine– Twiki

Sehr gut dokumentiert. Bietet viele Funktionalitäten an, von Verwaltung der Benutzerzugriffsrechte bis hin dazu, Grafiken direkt im Wiki zu erzeugen und zu editieren

Page 32: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 32cims

Wikitext

• Wikitext oder Wiki-Code oder Wiki-Syntax ist eine Auszeichnungssprache– Stellt eine vereinfachte Alternative zu HTML– Auszeichnungssymbole – Tags

Sorgen für die richtige Darstellung des Textes in einer Seite z.B. richtige Formatierung (kursiv, unterstrichen)

– Automatische Erstellung durch What-you-see-is-what-you-get (WYSIWYG) - Editoren• OpenOffice ab Version 2.3

Page 33: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 33cims

Wiki - Grundfunktionen

• Keine HTML-Kenntnisse nötig

Mittels Wikitext kann jeder Benutzer ganz einfach:– Neue Seiten anlegen– Bestehende Seiten miteinander verknüpfen– Inhalten richtig gestalten

• Versionierung aller Seiten– Wer eine Seite geändert hat?– Wann wurde diese Seite geändert?– Schutz vor Missbrauch der Seiten

Page 34: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 34cims

Wiki - Grundfunktionen

• Diff-Funktion– Detaillierte Ausgabe der vorgenommen Änderungen zwischen zwei

Versionen einer Seite• Was wurde geändert?• Was wurde hinzugefügt?• Was wurde gelöscht?

• Automatische Verlinkung– Innere Verlinkung durch Seitennamen– Sehr einfache Verlinkung von fremden Seiten

• Automatische Erzeugung nicht bestehender Seiten durch schon vorhandene Links

Page 35: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 35cims

Wiki Zusammenfassung

• Wikis beinhalten freie Inhalte

• Die Erfahrung und das Wissen vieler Personen werden zusammengefasst

• Wikis können sowohl lokal als auch im Internet benutzt werden

• Durch den Versionierungsaspekt gehen Inhalte nicht verloren und es können sehr schnell Maßnahmen gegen Missbräuche ergriffen werden

• Leichte Bedienbarkeit

Page 36: Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims 14.07.2009 cims.

Projekt Tools: Subversion, Wiki 14.07.2009 36cims

Fragen?

??