Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Version Control for Distributed Teams

22 Oct 2008 1  
You want version control regardless of whether you are working at your office desk or on the train? You want to be able to create checkpoints even when developing without server connection? Read on to learn how to get this without the need to spend big to purchase an enterprise tool.

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

The Dream of the Ubiquitous Workplace

Have you ever dreamed of developing in a cafe by the sea? If yes, have you ever tried it at the same time your colleagues were developing on the same project files? Even with WLAN becoming more widely available, a secure and stable connection to your company network is not always at hand. So you might have been working on your local copy, but what about check pointing your work? In such a situation, a solid version control tool can help out.

But let us start by having a look at two related, but different concepts.

Remote Development

This is the example from the paragraph above. Remote development describes work that is done outside your typical environment, e.g. outside your office. Remote development does not need to involve many people and many locations. Instead, it describes the fact that development is made without having an online connection to the data repository. If your data sits in your company LAN, you are typically working on a local copy without server access. The big challenge here is to get support for local revisions.

Distributed Development

In the software world, distributed development typically involves two or more people working from multiple locations. The people are collaborating on the same project(s) sharing the same data. In a client/server environment, the data sits in one location, and all locations are connected via a WAN connection. Version control tools are typically used to control concurrent change to the server data. The challenge here is different and about offering distributed teams the same data transfer performance as to users working within the LAN where the data repository is located.

This is certainly far from a scientific definition of the two terms, but it should help us to distinguish the different challenges.

Getting Remote Development Right

PureCM is a leading version control solution for remote developers in a team environment. This is achieved mainly due to the three following reasons:

  • Local file history. You can choose to include the file and changeset history in your local workspace. So if you know that you will need the workspace remotely, this option gives you all the necessary information as if you were working online.
  • Two-stage upload. This means that you can choose to update changes from the server in a two stage process: First, downloading the changes from the server as long as you are connected. Second, integrating the (conflicting) changes into your workspace whenever you want, even when being offline.
  • Local revisions. Using local revisions you can create checkpoints of your work in your local workspace while they are unfinished. Additionally, you can group your changes into separate changesets to group them into logical tasks for the later upload to the server.

image001.gif

As long as you are online, you can work with PureCM as usual. You can update changes into your workspace, checkpoint revisions on the server and submit finished changes. As PureCM automatically creates a local revision for checkpoints, you are able to switch to remote working without losing any version control functionality: Roll back your changes to any local revision or group changes into changesets.

What About Distributed Development?

As we have seen in the introduction, the challenge here is to provide distributed teams with maximum performance. This is exactly the purpose of the PureCM Proxy Server. It caches data on a local network, increasing data access up to 18 times when compared to a WAN access to a remote data repository!

You can set up any number of proxy servers to accommodate your organisation, e.g. as shown in the following concept graphic.

image002.jpg

The PureCM’s proxy referral policy makes life for developers easy, as it automatically connects to the local proxy once the initial setup is done. From a developer point of view, he will see exactly the same information as a developer connected directly to the data repository. In the example above, this would mean that a developer could work using the local proxy in London and the next day in New York without having to change any connection settings.

Facilitating Communication

As distributed development is just as much about communication as anything else, PureCM tracks all checked out files live on the server. As such, any developer can easily identify colleagues who are working on the same project or even on the same files and get in touch with them.

As a supplementary option, PureCM’s integrated issue management facilitates working with distributed teams. Issues assigned to developers can be linked with the changesets as part of a development workflow. They provide the development team with full transparency about who is working on which tasks, and what status they are in.

The Dream of the Ubiquitous Workplace — Revisited

Remote and distributed development offer numerous advantages for today’s development teams. PureCM offers powerful solutions to solve the version control challenges in such environments. Offline revision control for remote developers and fast data transfer for distributed teams are examples of such features.

Please refer to the PureCM website to find out more about its support for parallel and distributed development, including easy but powerful branching and merging.

>> Click here to download your FREE PureCM evaluation

image003.gif

PureCM is a Software Configuration Management (SCM) solution that controls and tracks changes to digital assets. PureCM facilitates and speeds up development in team environments using the leading concept of stream-based branching and merging. Complete with integrated Issue Management functionality, PureCM can be tailored to any development and change management process. PureCM excels in task-oriented environments, where productivity and security is optimised using local workspaces combined with a client/server architecture.

Both the PureCM client and server are available across multiple platforms such as Windows, Linux, and Mac. Offering native integration with Visual Studio® and Eclipse, PureCM is easy to use and easy to deploy, and thus particularly well-suited for today’s dynamic environment.

Visit us on www.purecm.com

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here