Cascade File System

Cascade File System under Windows

Cascade File System is a new, more efficient way to access your revision control repository. With Cascade File System, there’s no need to “check out” a local copy of the tree — you can start viewing and editing files immediately. Cascade’s patent-pending caching technology downloads files only as they are needed. Once a file is locally cached, accessing it is just as fast as accessing any other file stored on your local disk.

Cascade File System runs on Windows, Linux, and Macintosh. You can interact with CFS either via a command line client utility “csc”, or through a Windows Explorer shell extension (right-clicking on a file or directory will bring up a “Cascade” menu).

Cascade currently supports Perforce, Subversion, and Alienbrain repositories. If you would like to use Cascade with another type of repository, please contact us so we can look into adding support.

Cascade Proxy

Cascade Proxy adds another layer of caching to improve Cascade File System’s performance and scalability. With Cascade Proxy, engineers at remote sites can work just as effectively as engineers at your main site.

Once one person has downloaded a file through Cascade Proxy, everyone else at that same site can obtain it locally from the proxy rather than from the original repository. Not only does this speed up access to files, but it also helps offload work from your repository server and saves WAN link bandwidth. The files are automatically compressed as they are sent across the network, speeding up transfers further still.

Unlike replication-based solutions, which consume large amounts of disk space and network bandwidth, and which (depending on the size of your repository) can take days or even weeks to build their initial replicas, Cascade Proxy is a lightweight solution. You can assign a proxy as much or as little disk space as you want, and you can be up and running with a new proxy server in minutes.

Cascade Manager

Cascade Manager (tasks page)

Cascade Manager automatically runs builds and tests in parallel on a cluster of PCs as changes are committed to your repository and saves these tasks’ results in a database. (You could run tasks with low priority on individual engineers’ PCs also, if you don’t want to set up a cluster.)

You can monitor these tasks’ status via Cascade Manager’s web interface. For example, you can see whether each of your regressions is passing or failing on Cascade Manager’s front page, or drill down to see what passed or failed at a particular revision and to look at the failed tasks’ logs.

Cascade Manager leverages the power of Cascade File System. Unlike other automated build systems, worker PCs don’t need to “check out” a local tree. Each task runs in a brand new CFS tree, so there’s no danger that a task’s tree was subtly corrupted by a previous task.

Cascade Manager (task dependencies)

As each task runs, Cascade File System automatically gathers dependency information, watching what files and directories are accessed by the task. Cascade Manager uses this dependency information to automatically determine which subsequent changes to the repository affect that task. Thanks to automatic dependency tracking, there’s no need to manually write up rules about which changes might affect a particular task. It doesn’t matter whether your makefiles are buggy or have missing dependencies — even if you’re not using “make” at all, Cascade’s automatic dependency tracking picks up the correct dependencies.