Source Code Control

Branch and Merge With Ease

One of the best things about Mercurial is that branching actually works really well. Branching works well because merging works well, and merging works because Mercurial, and other DVCSs, track history in a new way. The result is a more sophisticated approach to merging, and the ability to make merges a part of the history. That means that if something goes wrong, you can just roll back and try the merge again.

There are generally two reasons to create branches:

  • You want to work on a feature, but it is going to destabilize the code enough that you don't want to impact other developers working in your "trunk" repository.
  • You want to create a long-running branch for yourself or another developer (workspace). The workspace allows you to work without disrupting anything that is going on in the "trunk" repository. This also facilitates the "review everything before it goes into trunk" code-review process.

Kiln supports both of these use cases out of the box. With a few clicks, you can be using a workflow that actually matches the way that you've always wanted to work with your code and co-workers. If you're curious, you can check out the complete how-to guide.

Organize Your Code

Start simply by just creating the repositories you need for your code. Kiln introduces branch repositories, repository groups, and projects to help keep things organized as you develop your own workflow.

Branch repositories are lightweight clones of an existing repository that are designed to allow you to work without getting in the way of your colleagues. Want to work on that experimental new feature, but need to be sure the code is safe on the server? No problem! Create a branch repository, copy it to your workstation and use it like any other repository. When you're done, you can push the changes you've made back to the repository you branched from.

Repository Groups and Projects are there to help keep related code grouped together. Whether your software project is large or small, it can be really helpful to separate different parts of the code into different repositories. What used to be accomplished with complicated naming schemes is now accomplished with simple labels and drag-and-drop organization.

Stay Up To Date

Kiln activity filters give you total visibility into what is going on inside your code. You can slice up information any way you want. It is simple to see what is going on in any project or repository and even to filter for all of your recent commits.

Want to keep track of several projects? Not a problem. You can save your filters and come back to them any time. And if RSS is your thing, every filter gets its own feed, and you can subscribe using your favorite reader.

Get Detailed

Kiln boasts a deep set of tools for browsing your repository history and contents. Each repository gets its own page that lets you view your repository's history, see who changed what pieces of code, and look at the state of its files at any point in time.

You can get really specific and see the line-by-line history of any file. We've included an enhanced version of "annotate" that allows you to see the last few revisions where any line of code was changed, and gives you a link to see all revisions where that line was changed.

Fog Creek Hosting

With several years experience hosting FogBugz On Demand, we've developed a world-class hosting infrastructure. We've been able to simply re-use much of that architecture for Kiln. This means you get real-time backups of your data to standby servers, historical backups each day, and offsite backups stored for 30 days, just like FogBugz on Demand customers.

In fact, hosting your data has made us obsessed about security, redundancy, and reliability. We believe so strongly in the tactics that we've developed for securing your On Demand data, that we use the same approach to secure our own. In addition to the preventative measures that we've taken to ensure the integrity of your On Demand account, we have real-time monitoring of all services and amazing system administrators available around the clock should anything need attention. And you can rest assured that we will never look at the contents of your account for any reason without your express permission.

We perform regular security audits to make sure that we are doing everything we can to keep your data safe. The On Demand architecture makes it easy to deploy updated versions of Kiln, so we always upgrade your hosted Kiln account as soon as a new version is released. That way, you're always guaranteed to have the latest and most secure version of Kiln (as well as any cool new features that we are working on).

And all of this is backed by our outstanding customer service and the Fog Creek Promise that if you’re not satisfied, for any reason, within 90 days you get a full refund, period, no questions asked. We don’t want your money if you’re not amazingly happy.


DVCS Enhancements

Electrified DAG

The Electrified DAG makes it much easier to discover what changes have made it into a particular tag or build. Activating this feature is as simple as clicking on a changeset in the repository history view. Once you've selected a changeset, Kiln walks the DAG and highlights all of its ancestors and descendants. This means you can easily:

  • Select a changeset and see what newer tags contain it
  • Select any tag and see all of the older changesets that it contains

For a complete walkthrough, with all the nitty-gritty details, check out our knowledge base.

Easy Setup

As developers, we've run into the same problems you have trying to get all the pieces you need to set up the server and client-side parts of your version control system. Kiln takes the pain out of setting up a version control system for all of your users (I'm looking at you too, Mr. System Administrator).

The Kiln installer and Kiln Client transform hours of searching and configuring into a few minutes of work walking through a single installer that you can download from us and run on your server or client.

On the server, the installer takes care of setting up all of Kiln's dependencies. It will even install a free version of SQL Server if you don't have one already set up.

The Kiln client can be downloaded while you are logged in to your Kiln account. The download is linked to your account and securely stores your username and password so that you don't need to enter them each time you check code into Kiln. The client installer sets up all of the tools you need, including graphical and command-line clients, and you don't even have to reboot.

Large Binary File Support

By default Mercurial stores every version of every binary file you add to your repository. Unlike text files, like source code, it's pretty rare to need to regularly access old versions of binary files, like the complete Windows 2003 Server ISO you checked in that time. This default behavior can slow things down, and even make it difficult for some developers that need to use lots of binary files, like game devs, to use DVCS.

Well, no more! The Kiln Big Files extension to Mercurial makes it possible to manage very large repositories with lots of binary files. Want to learn more about it? Take a look at the articles on the Kiln knowledge exchange.