<p>I like how SQLite library can be included into an application and the application has a full-fledged database to use.</p>

<p>Similarly, is there an open source versioning library that I can include into my application so that I can save versions of files as well as do diffs and merges?</p>

[{'answer_id': 47359, 'author': 'aku', 'author_id': 1196, 'author_profile': 'https://Stackoverflow.com/users/1196', 'pm_score': -1, 'selected': False, 'text': '<p>In my opinion <a href="http://www.firebirdsql.org/" rel="nofollow noreferrer">Firebird</a> is one of the best choices for embedded DB scenarios.<br>\nAlso <a href="http://www.microsoft.com/sql/editions/compact/default.mspx" rel="nofollow noreferrer">Microsoft SQL Server Compact</a> (closed source, but free) might be suitable, however it less capable than Firebird.</p>\n\n<p><strong>EDIT:</strong>\nI misread you question. If you don\'t need RDBMS, you can try to embed <a href="http://subversion.tigris.org" rel="nofollow noreferrer">SVN</a> to your application.</p>\n'}, {'answer_id': 47362, 'author': 'Nick Retallack', 'author_id': 2653, 'author_profile': 'https://Stackoverflow.com/users/2653', 'pm_score': 0, 'selected': False, 'text': '<p>I am not entirely sure what you mean by "included in an application", as you could potentially deliver any library so long as the licensing allows.  Are you referring to the fact that sqlite is small or that it is <a href="http://www.sqlite.org/copyright.html" rel="nofollow noreferrer">public domain</a>?</p>\n\n<p><a href="http://www.selenic.com/mercurial/wiki/" rel="nofollow noreferrer">Mercurial</a> is a similarly lightweight piece of revision control software.  If you are writing your application in python, which is likely since <a href="http://www.sqlite.org/copyright.html" rel="nofollow noreferrer">python now includes sqlite3</a>, importing features directly from mercurial\'s source code should not be too difficult.  Otherwise there\'s no shame in invoking commandline processes, though this may be clunkier.  Mercurial is not public domain, but it is GPL\'d.</p>\n\n<p>Mercurial is also my personal favorite among modern revision control systems.  It\'s leaps ahead of CVS and Subversion, and very similar to GIT although somewhat simpler to use.</p>\n'}, {'answer_id': 47368, 'author': 'aku', 'author_id': 1196, 'author_profile': 'https://Stackoverflow.com/users/1196', 'pm_score': 3, 'selected': True, 'text': '<p>SVN doesn\'t require any prerequisites on end user machine. You can embed SVN right into you app. To learn more on subversion integration, visit "<a href="http://www.svnforum.org/2017/viewforum.php?f=17&amp;sid=643adb11d5f8edd09544aa435b6f5732" rel="nofollow noreferrer">Application Integration/Embedding</a>" thread on SVN forum.</p>\n'}, {'answer_id': 61099, 'author': 'Swaroop C H', 'author_id': 4869, 'author_profile': 'https://Stackoverflow.com/users/4869', 'pm_score': 1, 'selected': False, 'text': '<p>Answering my question myself, I recently discovered <a href="http://piranha.org.ua/blog/2008/05/19/hgshelve/" rel="nofollow noreferrer">hgshelve</a> and <a href="http://www.newartisans.com/blog_files/git.versioned.data.store.php" rel="nofollow noreferrer">gitshelve</a> that is almost exactly what I was looking for.</p>\n'}, {'answer_id': 26049235, 'author': 'Bryan Oakley', 'author_id': 7432, 'author_profile': 'https://Stackoverflow.com/users/7432', 'pm_score': 0, 'selected': False, 'text': '<p>You might want to look at <a href="http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki" rel="nofollow">fossil</a>, an scm tool written by the author of sqlite. I don\'t know how easy it is to embed, but it is a single file executable so it should be quite easy to run from within your application. </p>\n\n<p>Arguably, running it as a seperate process might actually be better than embedding since it won\'t slow down your app while it does what it does.</p>\n'}]
['https://Stackoverflow.com/questions/47340', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/4869/']