Version/Source Control

TortoiseHg (Mercurial based) is really good on Windows. I’m not crazy about the OSX implementation. Free, lightning fast and is well kept up. I also like it because it’s all local and I just let my backup service handle backing it up to the cloud. How hard is to use? Right-click on a folder and choose, “Create Repository here”, and then open the folder in GUI front end. You are now doing version control.

http://tortoisehg.bitbucket.org/download/windows.html

Well I have not used Fossil, but a quick look at their website suggests that they are definitely a good match for the ones already mentioned. I think the message to be taken away from this discussion is that SCM is now a standard tool in the toolbox and you can make life a lot easier by using one. And after all no matter what you to with solutions like DropBox, you are not going to be able to get this kind of overview of your work:

Even when working alone I always start out by creating a repository for my work. It is just so much easier to do things like:

  • View the history of your work
  • Create test version of the app for users
  • Patch reported bugs in test versions reported by users and merge it in the main branch once the user confirms the fix
  • Create feature branches to test POCs and so on
  • Track production versions against the current code base
  • Create hot fixes for production systems and merge back to the main branch and so on.

One thing with fossil is that it uses port 8080 by default, which is also the same port Xojo uses by default. First time I tried to test an app with Fossil running Xojo just quit without warning. Make sure you change the port on one or the other!

What I like with Fossil is its simplicity. With just a few steps you have your SCM running. And like GIT or Mercurial it is a distributed SCM.

If you need the power, you can create your own multi-project SCM-repository like Github or sourceforge with just some tinkering with an Apache server. If you know some basic HTML/CSS you can easily customize the webskin.

I’m using it in my company for Xojo, Python & PHP-projects since 2008 and it does exactly what I need. And since the Desktop GUI Fuel is out I do not have to mess around with the command line all the time (only when forking or merging).

Thanks for suggesting Fossil. I will take a look.

I use BitBucket / Git but Fossil looks like a good option for version control.

Has anyone used https://chiselapp.com for hosting Fossil repos?

If you are a Mac user, I know a few of us are using SVN + Cornerstone ( https://www.zennaware.com/cornerstone/index.php ) with good results. I do my svn hosting using Dreamhost.com (it comes free with most plans).

Is hosting mandatory ?

No in most cases you can host locally on you desktop or server. But obviously you need to manage your own backup in such instances.

We use SVN (on a local server) in combination with SmartSVN.
We chose SmartSVN because it provided us with consistency accross platforms (programmers on Windows and Mac).
Our code is saved in xml format so that we are able to share code between projects.
In addition to this we use Arbed to show us the code diffs.

Thanks.

No. Hosting is not mandatory. But it is a good idea because you can access your repository from multiple machines. And you have a backup.

You work with a local copy of fossil. If you have a repository hosted somewhere you can clone it and changes are synced with the remote server (in this case you have a local repository and can push modifications to the remote one).

Alternative is to store the repository in a location where it can be backed up (ie. Dropbox folder). Fossil repository is just one file.

Here’s another alternative (for git, not sure about others): Set up a folder on an external hard drive, then use that as a “remote” repository.

Benefit: When you commit changes, you can push it to this backup folder right away. You don’t have worry about your code being out on the web and potentially out of your control.

Drawback: Everything is local, so unless you implement some separate off-site backup scheme, a catastrophe would mean that you will lose everything. Even if you do implement such a scheme, it may not be a backup as of your last commit.

You need to manage your own backup in all instances. Offsite hosting needs to be just one piece in a fully backed up and redundant source code management system.

http://www.bkeeneybriefs.com/2014/06/be-paranoid-about-your-data/

http://www.electronista.com/articles/14/06/18/hosting.company.returning.what.data.it.has.left.financially.crippled.by.attack/