Beanstalk – Cloud Based Source Code Version Control

In a recent post I introduced Cornerstone, a Subversion Mac GUI client. In this post I’ll provide some additional insight into Beanstalk, which offers cloud based hosting for Git, Subversion and Mercurial. Beanstalk and Cornerstone make a very capable pair for source code management.

Overview

Beanstalk is a cloud based version control system. There are numerous tools for managing and reviewing code, integrating with bug tracking and related systems, as well as comprehensive deployment support.

Read on for an introduction to a number of a Beanstalk features.

Managing Repositories

Creating a repository is as quite straightforward, provide a name and type, the default path will be created for you.

Next, you specify if the repository is new (empty) or if you prefer to import data from a URL or file system.

Finally, specify the permissions for those who will access the source:

Source Code Browse, Diff, Edit and Blame

When browsing source files in a Beanstalk project, there are a number of integrated tools available. Diff provides file comparison of two revisions of a file. Preview allows for a visual comparison of HTML content, allowing for a side-by-side comparison. Blame is a tool that shows author and revision information for all changes in a file, this is nice to get a running history of changes, showing who did what and when, for an entire file.

The screenshot below shows project browse interface, notice the options for changing the revision, Diff, Blame and file Edit:

Below I’ve selected to run Diff on the file TestViewController, from the dropdown I can choose which revision I would like:

Diff will show lines removed in red and lines added in green:

The screenshot below gives you an idea how the blame tool looks, notice on the right side the information shown for each code change:

And for quick code changes, you can also edit files within Beanstalk:

The edit feature is nice if you don’t want to check out a file, make a minor change, and commit – you can do it all from within Beanstalk.

Deployment

If your projects including deploy code, Beanstalk offers a number of options: ftp, sftp and Amazon S3. Deployments can be either manual or you can configure a repository to automatically upload files that have changed since the most recent deployment.

Beanstalk also offers a convenient way to manage deployments by running shell commands via Secure Shell (SSH).

Web Service Integration

Beyond the traditional hosting services, Beanstalk offers integration with a number of other web based products/services. For example, if you use FogBugs for tracking bugs, you can post comments to a case (bug report), change state of a case as well as reassign cases, all without visiting the FogBugz website.

Another example of web-services integration is with Campfire, a real-time group chat tool. With Beanstalk you can notify others regarding deployments and commits. Handy, as you don’t need to remember to send a message or otherwise inform team members when making project changes and deploying apps.

Email Notifications

With Beanstalk you can keep an eye on a project via email notifications. You can choose to be notified about commits and deployments, and the daily digest is a summary of all the days activities. Digests offer a glimpse into the activity without all the noise of multiple emails.

Backups and Amazon S3

Beanstalk backs up all repositories for you. If you prefer, you can also have backups sent to an Amazon S3 account. To backup to S3, you will need to be on the business plan (or higher).

S3 support offers additional piece of mind, and to boot, S3 is quite affordable. Even better, Beanstalk makes the process quite easy.

Beanstalk Blog, Twitter and RSS

Beanstalk offers a number of ways to stay connected and informed, including information specific to your projects as well as general information about features, improvements and bug fixes.

Beanstalk Blog

Follow Beanstalkapp on Twitter

There are two RSS feeds available. First is the Beanstalk Feed, which covers features and general updates/fixes. The second feed is specific to your account and repositories, and provides information on project commits. The link for this feed is available from within your account when logged into Beanstalk.

Beanstalk API

And if all that wasn’t enough, Beanstalk offers an API that you can use to create your own tools using the data that Beanstalk manages for you.

The Beanstalk API is REST based and supports JSON and XML.

Trying Beanstalk

You can try Beanstalk for free, including 100MB storage, with one repository and one user account.

I think you will agree, Beanstalk is an excellent source code management system. Should you decide to continue with a paid account, Mobile Developer Tips and Beanstalk offer a 10% discount off your first months payment.