Version Control for the Web

2016-03-29

It feels like an eternity since I last wrote. Finally, Boomla v0.1.0 is out with with version control support.

In my last post I mentioned storing lots of files in a single parent was a requirement for a secret feature I was working on. This is it. Version control and the all mighty undo button.

Feature summary:

  • boomla.me control panel,
  • undo, redo,
  • commit, checkout,
  • branch, publish,
  • incremental storage,
  • lightning fast.

Undo, redo

The toolbar now includes an undo & redo button. It allows rolling back and forth the most recent changes (currently 50).

Control Panel

The rest of the version control features are only accessable via the Control Panel website, which is now accessible from boomla.me, a built-in website bundled wit the Boomla binary. boomla.me and all its subdomains point to your local machine, so this domain is intended for local development. Read: you won’t need to update the hosts file on your machine every time you create a new website or branch.

The Version tab of the toolbar contains quick links to the most common features, like commiting or branching.

Commiting changes

Once you are done with your changes, you can create a permanent snapshot of the website via a commit. Note that commiting your changes drops your undo history, so you can at most undo up to the latest commit.

You can always roll back you website to any committed state, so the more frequently you commit your changes, the safer you are.

Branching

At any time you can create a new branch from your website. This will create a subdomain, say feature.example.com. The benefit of working on a branch instead of the public website is that changes won’t be immediately published. Read: you can fuck up the website without your visitors noticing.

Also, your results can be shared with others to gather feedback without actually publishing the changes or sending around email attachments.

Publishing

If you are happy with your changes to the branch you have started, simply publish it, which will replace the public website with the given branch.

More sophisticated merging options are not supported for now. Read: if the public website changed after you created the branch, you will have to manually merge your changes.

Incremental storage

Creating a new branch doesn’t duplicate the data, only the changes are stored as you go. This makes branching fast & cheap.

Fast

All the version control features are lightning fast. Can’t describe, go give it a try.

Migration

You will need to migrate your old workspaces to take advantage of version control.

To migrate an old workspace export your site via boomla posix export ..., then create a new workspace with the new Boomla binary and import it in the new workspace via boomla posix imoprt ....

You will also need to download the latest demo-website and overwrite your /sys subtree with the one in the workspace. This will update your toolbar.

More details

If you want more details, head to the Version Control docs.

Cheers, Tibor