views:

80

answers:

5

Hello, I was wondering if its possible to bundle version control software with a product, so customers can use it to version control the configuration files required for the final product to run.

So far, searching has only given me pointers to using SVN/Git etc. for versioning source code within an organization. Are there any examples of using API(if any) provided by SVN/Git for bundling version control within a final product?

A: 

You could certainly do something like using the Git system indirectly; some resources are listed in this previous question:

http://stackoverflow.com/questions/645814/reading-a-git-repository-without-git

Amber
I was looking at a C++ API - PHP is not really an option. Thank you for the answer :)
specksynder
The latter portion of the first answer has some links to non-PHP specific resources as well.
Amber
+1  A: 

If you do bundle it, make it an optional component. Your clients may already have a tool in place. Consider using a chained install which downloads and installs the chosen tool.

I would choose GIT myself. Provide usage documentation for the choosen tool.

BillThor
Thanks for the answer. I wasn't looking at it as an install, more like using an API programmatically to maintain versioning of configuration files.
specksynder
A: 

svnkit offers 'Sub'Versioning for java. jGit may be advantageous making a 'central' repository optional.

zellus
A: 

you do not specify what language your application is written in, so I need to assume, like everyone else :)

First answer

AnkhSVN is a Subversion Source Control Provider for Microsoft Visual Studio 2005, 2008 and 2010

they use SubversionSharp (or SVNSharp or even SVN#) to do everything, so I would mention that SVN# is a good idea to use if you're in a .NET environment ...

you would probably think, after a while the same as Paul did

http://twitter.com/aeoth/status/5112817005

More answers

What are you really trying to accomplish? install a SVN Server as well? Well, you should not do that unless you specify it, just like BillThor suggests.

Companies use them already, problem you will end up is that, the 3 most common Versioning products are SVN, Git and Mercurial and ... do you really want to code for all of them?

Wouldn't be easier to create a S3 account and maintain the files there for versioning and you app uploads new versions while a simple webpage can access them to view?

just throughout some ideas as problems you could face.

balexandre
Hello, my apologies about the lack of details in the initial request. I was looking at a C++ API. Think of the product as mysql database - it ships with a standard configuration file, that customers can then modify to their needs. But every time they make any changes, it would be great if my code does the revisioning for them, instead of requiring them to learn Git/SVN administration. This way, if they have problems with a particular configuration, they can revert to earlier versions. Exactly how anyone would use version control during their in-house dev cycle.
specksynder
I don't find any examples of revision control being built into a product as a feature. I agree that Git/SVN standalone would do a much better job, but sometimes convenience(of having revisioning built into the end product) would outweigh flexibility (that Git/SVN provide) for customers. One way I was thinking of attacking this question was to look at how versioning is incorporated as a plugin for editors - like in Emacs and Eclipse.
specksynder
Thanks for your answer!
specksynder
A: 

Subversion certainly has it's own C style API:

http://svnbook.red-bean.com/en/1.5/svn.developer.usingapi.html

Jim T