Projekt Tools: Subversion, Wiki
Nikolay NachevSeminar 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
Projekt Tools: Subversion, Wiki 14.07.2009 3cims
Übersicht 2/2
III. Wiki Die Geschichte Einführung Wiki-Engine (Wiki-Software) Wikitext Grundfunktionen Zusammenfassung
Projekt Tools: Subversion, Wiki 14.07.2009 4cims
Versionsverwaltung
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
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
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
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
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
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
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
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
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
Projekt Tools: Subversion, Wiki 14.07.2009 14cims
Subversion SVN
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
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
Projekt Tools: Subversion, Wiki 14.07.2009 17cims
Subversion Architektur
SubversionBuch - Frank Budszuhn http://www.subversionbuch.de/architektur.html
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)
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
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.
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
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“
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
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
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
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
Projekt Tools: Subversion, Wiki 14.07.2009 27cims
Wiki
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
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
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
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
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
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
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
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
Projekt Tools: Subversion, Wiki 14.07.2009 36cims
Fragen?
??