Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims cims
Projekt Tools: Subversion, Wiki cims Übersicht 1/2 I.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
Projekt Tools: Subversion, Wiki cims Übersicht 2/2 III.Wiki Die Geschichte Einführung Wiki-Engine (Wiki-Software) Wikitext Grundfunktionen Zusammenfassung
Projekt Tools: Subversion, Wiki cims Versionsverwaltung
Projekt Tools: Subversion, Wiki cims 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 Kongurati- onsdateien
Projekt Tools: Subversion, Wiki cims Versionierungsmethoden Lokale Versionsverwaltung – Versionierung von einzelnen Dateien – Kein Repository – Versionen eines Dokuments werden innerhalb des Dokuments gespeichert
Projekt Tools: Subversion, Wiki cims Versionierungsmethoden Zentrale Versionsverwaltung – Ein Repository – Benutzer-Rechteverwaltung – Versionsgeschichte nur im Repository vorhanden – Verwendet bei CVS und SVN Zentrale Versionsverwaltung - dresden.de/swiki/index.php/Versionsverwaltungssysteme
Projekt Tools: Subversion, Wiki cims 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 - dresden.de/swiki/index.php/Versionsverwaltungssysteme
Projekt Tools: Subversion, Wiki cims Versionierungsmodelle – Das Problem SVN The Book – Kapitel 1 Grund Konzepte – Versionierungsmodelle -
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims Beispiele - RCS RCS - Revision Control System – Lokale Versionsverwaltung – Versionierung von Dateien, Quelltext oder Dokumenten sehr bedingt – Benutzer dürfen Dateien nicht gleichzeitig bearbeiten
Projekt Tools: Subversion, Wiki cims Beispiele - CVS CVS - Concurrent Versions System – Zentrale Versionsverwaltung – Ausgereifte Versionierung von Dateien, Quelltext oder Dokumenten – Dateien dürfen von mehreren Benutzern gleichzeitig bearbeitet werden
Projekt Tools: Subversion, Wiki cims Subversion SVN
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims Subversion Architektur SubversionBuch - Frank Budszuhn
Projekt Tools: Subversion, Wiki cims 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)
Projekt Tools: Subversion, Wiki cims 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 \ stuproa-cims –username usernamehttps://stuproa-cims.googlecode.com/svn/trunk/ – Anonym $ svn checkout \ stuproa-cims-read-onlyhttp://stuproa-cims.googlecode.com/svn/trunk/
Projekt Tools: Subversion, Wiki cims 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.
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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 aktuell 2.Lokal geändert und aktuell 3.Unverändert und veraltet 4.Lokal geändert und veraltet
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims Verzweigen, Zusammenführen, Etikettieren Verzweigen (Branching) Zusammenführen (Merging) Etikettieren (Tagging) Visualisierung eines Subverions-Projekt
Projekt Tools: Subversion, Wiki cims Wiki
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims 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
Projekt Tools: Subversion, Wiki cims Fragen? ? ?