Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using subversion as a versioning engine within an application

Tags:

svn

Conventionally, svn is used either directly from the command-line or through a GUI client like Tortoise.

Are there any examples of fully-fledged applications that use svn under the hood to implement versioning?

Rather than using a relational DBMS, I can imagine that there might be occasions where an svn repository could be used as a file-based, versioned persistance layer. Are there any fundamental reaons why this would be a bad idea?

like image 578
ctford Avatar asked Dec 16 '09 15:12

ctford


1 Answers

Google Code uses Subversion to manage the versions of a project's wiki pages. Your wiki shows up as a folder in the Subversion repository. There is an open-source clone of Google Code called Longhouse. From the project description:

Longhouse employs a unique means of storing project data and making data accessible, storing information in XML format on your organization's Subversion repository. This means that you can edit any project artifacts outside the Longhouse Web UI, commit the modified XML files to your Subversion repository, and have Longhouse automatically take into account your changes.

Personally, I would be cautious about trying to version a large XML file. I tried it with Freemind mind maps, and the couple of times I had to merge were nightmares. My hunch is that YAML would be a better fit, although changing indentation levels could cause headaches. Maybe just avoiding large files with many levels is the best bet when you need to put data files under version control.

Update: As Josh Kelley commented, there are several other wiki engines that can use a revision control system (RCS) for data storage. According to WikiMatrix, Twiki, PhpWiki, JSPWiki, Foswiki, MoniWiki, and MidgardWiki are the ones in the top 25 that support this feature.

like image 200
Don Kirkby Avatar answered Oct 01 '22 02:10

Don Kirkby