2009-12-16 2 views
7

Konventionell wird svn entweder direkt von der Befehlszeile oder über einen GUI-Client wie Tortoise verwendet.Verwenden von Subversion als Versionierungsmodul in einer Anwendung

Gibt es Beispiele für vollwertige Anwendungen, die svn unter der Haube verwenden, um Versionierung zu implementieren?

Anstatt ein relationales DBMS verwenden, kann ich mir vorstellen, dass es könnte Gelegenheiten geben, wo ein SVN-Repository als dateibasierte, versioniert persistance Schicht verwendet werden könnten. Gibt es grundlegende Gründe, warum dies eine schlechte Idee wäre?

Antwort

3

Google Code verwendet Subversion, um die Versionen der Wiki-Seiten eines Projekts zu verwalten. Ihr Wiki wird als Ordner im Subversion-Repository angezeigt. Es gibt einen Open-Source-Klon von Google Code namens Longhouse. Aus der Projektbeschreibung:

Longhouse verwendet eine einzigartige Möglichkeit zum Speichern von Projektdaten und zum Zugänglichmachen von Daten, wobei Informationen im XML-Format im Subversion-Repository Ihrer Organisation gespeichert werden. Dies bedeutet, dass Sie alle Projektartefakte außerhalb der Weboberfläche von Longhouse bearbeiten können, die geänderten XML-Dateien in Ihr Subversion-Repository übertragen und Longhouse Ihre Änderungen automatisch berücksichtigen können.

Persönlich wäre ich vorsichtig beim Versuch, eine große XML-Datei zu versionieren. Ich versuchte es mit Freemind Mind Maps, und die paar Male, die ich zusammenführen musste, waren Albträume. Meine Vermutung ist, dass YAML besser passen würde, obwohl das Ändern der Einrückungsniveaus Kopfschmerzen verursachen könnte. Vielleicht ist es am besten, nur große Dateien mit vielen Ebenen zu vermeiden, wenn Sie Datendateien unter Versionskontrolle stellen müssen.

Update: Wie Josh Kelley kommentierte, gibt es einige andere Wiki-Engines, die ein Versionskontrollsystem (RCS) für die Datenspeicherung verwenden können. Laut WikiMatrix sind Twiki, PhpWiki, JSPWiki, Foswiki, MoniWiki und MidgardWiki diejenigen unter den Top 25, die diese Funktion unterstützen.

+0

+1 für die Erwähnung von Wikis. Ähnlich verwenden mehrere andere Wikis das RCS Versionskontrollsystem anstelle einer Datenbank: http://www.wikimatrix.org/wiki/feature:rcs –

2

Ich kenne keine konkreten Beispiele (habe noch nicht gesucht ...), aber es gibt eine voll ausgestattete .NET-Bindung für die SVN-API, genannt SharpSvn, wenn das hilft. (AFAIK wird intern von solchen GUI-Tools wie AnkhSvn verwendet.)

Ich denke, es gibt gute Änderungen, um auch einige verwandte Beispielcodes zu finden.

HTH.

Verwandte Themen