Why Do I Need or Not Need Version Control Ready Version?

In not too technical terms what is meant by “version control ready”?

I mostly make make applications for in-house use on the Mac platform which manipulate strings and images and save text of image files.

Assuming I would release some of these under a shareware license why would I need or not need version control?

Version Control Format is a text based format designed for use with a system like Subversion, Git, Mercurial (or one of the others I can’t immediately recall). These systems allow you to keep a somewhat infinite history of the changes to every little piece of your project as it develops. The advantages come in many forms:

  • Working on teams is a lot easier because two people can work on different parts at the same time without overwriting each other’s code.
  • You can revert individual sections of code if you find an error
  • Reviewing your notes about why a certain change was made is relatively easy, assuming you recorded it.

For instance, we use it here at Xojo because we have engineers working all over the earth, working on the project simultaneously.

Thanks for the reply.

Its sounds like that would be a little overkill for what I need as this is a single proprietorship with one employee (me) who does everything from apps to shipping. I’d likely opt for the single desktop license now as that’s really more than I need and only work on Macs now.

[quote=144901:@art ouette]Thanks for the reply.

Its sounds like that would be a little overkill for what I need as this is a single proprietorship with one employee (me) who does everything from apps to shipping. I’d likely opt for the single desktop license now as that’s really more than I need and only work on Macs now.[/quote]

the benefit for even one-person-shops of the version control format is you can keep the code in version control so you can roll back changes when you “make a mistake”. Using the version control system allows you to make a copy (branch), test something out, then disregard that copy (branch) when it doesn’t work out, or merge it into the original copy (master branch) if it does. It allows you more flexibility on testing out ideas/solutions.

if you feel you don’t need that, then you don’t need the version control license.

The benefits of version control are big. But one area that doesn’t get much press is it can really help you locate a problem you may have introduced months ago in some section of code that you did not fully test. Say you make some change, test it, looks good and you move on to other stuff and forget about it. Months go by then, out of nowhere, some problem appears because you didn’t test everything thoroughly and missed something. And you are not sure where you introduced the problem. With a single click you can rewind to any point in your project, run it and see if the problem exist. After a few clicks and runs, you find the exact point the problem appeared. Then it is only a matter of using the built in code differ to see what changes you made. I do a commit to the Version control repository after adding a new feature or fixing a bug. HUGE time saver.

So perhaps a crude comparison would be the “File: Revert To” command on the Mac where you can choose to revert a document to a previous version.

Right tool for the right job. I think you are going to end up making a mess of your project. But if you only san save the binary version of the Xojo projects, you will not be able to diff them (unless you use a 3rd party tool called ARBED) and that puts you in whole other situation. Easiest thing to do is use the VCS version and a version control tool. If your project is very small it won’t make much difference. But any decent size project will benefit from version control.

In the Source Control webinar I cover a bit about source (version) control and why you’d want to use it. Then I do show quick examples of how to use Subversion and Git. Source control is definitely useful even for a single developer.

Justin Elliott also did a guest webinar covering Git in more detail, should you want to learn more about it:

User Guide Book 4: Development, Chapter 5: Code Management, Section 2: Using Source Control might also be helpful.