Click here to Skip to main content
15,886,362 members
Articles / DevOps
Article

The Beauty of a Hybrid Version Control System

28 Jan 2016CPOL6 min read 14.3K   1  
The need for a truly hybrid system, offering the best of DVCS and centralized features, has become clear. Perforce Helix is the first and only product that covers all the bases, leaving no stakeholder out in the cold.

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.

Download the Gartner Report

Introduction

It wasn’t that long ago when versioning systems were all highly centralized affairs. And this wasn’t accidental but for good reasons. As soon as you have two people working on the same files, you must manage the workflow of changes. Centralized version control systems provided a reliable mechanism and were simultaneously ideal for enforcing policies, maintaining security, and providing scalability, reliability, etc. all in one place.

I’m old enough to remember the days when making a new branch was a thing to be feared, an operation sufficiently arcane and dangerous to require the entire VCS priesthood to be involved. But then came the DVCS revolution and the rise to prominence of Git, which did away with all that. Developers could suddenly commit and branch as often as desired locally, in-place, and without the aid of VCS gurus.[1]

In short, DVCS is most essentially part of the answer to the question facing each developer every day: how on Earth can I possibly manage all these different tasks and keep the work separate?! It’s no wonder Git and other DVCS systems have been adopted so broadly so quickly because their features offer developers faster, simpler, and better tools than ever before.

The Hybrid Challenge

But here’s the rub: most DVCS systems neither include the traditional strengths of centralized systems nor negate the need for them. As such, it’s equally easy to understand why so many organizations, particularly those in the enterprise, are now effectively coming full circle. That is, they’re now striving somehow to shoehorn disparate tools and workflows together to keep developers happy via DVCS systems without abandoning all the benefits of centralized systems.

The ugly truth is unpleasant: the local-desktop revolution too often discards completely the centralized baby with the DVCS bathwater, for which companies pay a high price. Sure, developers are happier than ever before, but only at the cost of making DevOps and others miserable. DVCS by itself isn’t a solution for everyone; it simply shifts pains to other groups. What’s needed is a system that meets the needs of all stakeholders. As a recent report by Gartner puts it:

Enterprise-grade management of Git that offers important aspects of a DVCS — good merging, the ability to work offline and good collaboration — along with the security and central repository of a CVCS, will resolve most remaining concerns about the use of the DVCS model.[2]

Developers need DVCS features to be happy and productive while other groups need centralized features to meet their needs. There’s simply no getting around it, particularly in the enterprise. Only a hybrid approach, one offering the best of both worlds (i.e., local and centralized features), can keep everyone happy.

Enter Perforce Helix

This is precisely the ground that Perforce Helix occupies, serving up time-tested centralized features and workflow alongside the most powerful and advanced DVCS features anywhere. Helix covers all the DVCS bases through its own local mode for developers, full support for Git and its ecosystem of tools, both married to the industry’s most capable server technology.

So let’s go over those bases. Helix local mode lets developers initialize new local repositories or clone from remote servers with a single command. It supports local, lightweight, in-place branching and merging to juggle multiple tasks and separate different units of work. It supplies powerful and safe features for rewriting history locally as well: correcting mistakes, squashing multiple submits together, or just fixing a dumb spelling mistake in a commit description.

And unlike other DVCS systems, Helix doesn’t choke on large numbers of files, large binary files, any of it. Helix lets you store any amount of content, keeping everything in one, huge monorepo for a single source of truth. Developers can use its advanced narrow cloning feature to slice off only what they need while DevOps and others can access everything all in one place—the very reason a single source of truth is so crucial for success.

Nothing But Git

But of course the industry’s most popular DVCS is clearly Git. Some of our own developers use it, in fact, so it’s no surprise Helix offers full support for Git and its ecosystem of tools. GitSwarm is the newest addition to the Helix lineup. It provides all the features of GitLab yet integrates with the Helix Versioning Engine to do things no other Git hosting system can.

GitSwarm offers the usual one-to-one project-to-repo mapping with security options, issue and milestone tracking for lightweight ALM, and of course full support for Git—even a built-in wiki to capture notes, ideas, documentation, etc. But like Helix local mode, GitSwarm can take advantage of narrow cloning and other advanced Helix features, making it the first (and only) Git hosting solution that can arbitrarily carve off Git-sized slices of a huge, centrally managed monorepo.

Developers using Git create projects as they like, clone, fork, push work back, and create merge requests, enjoying the same workflow they’ve come to rely on with GitHub, GitLab, etc. Only unlike those other solutions their work will be mirrored, automatically and bidirectionally, with the Helix Versioning Engine.

Maximum Collaboration

This makes it possible to open the door like never before to designers, artists, animators, musicians, writers, and every other type of stakeholder found in modern product development. They can access the same files in the same, single source of truth using whatever tools are best suited to their technical skills and preferred workflow. Everyone works on the same files, the same content, but at their own speed in their own way.

After all, the DVCS workflow isn’t for everyone, and neither is Git’s interface, either from the command line, TortoiseGit, or other GUI clients. With Helix, stakeholders aren’t forced into working one way or using one sort of tool. Instead, developers can use Helix local mode or Git as they like while other contributors can use a simple visual client or work directly from within their applications via a broad suite of integrations and plugins.

Each stakeholder can work as he or she wishes using the tools and workflow most suited to task. Helix empowers inter-disciplinary collaboration like no other system, unifying contributors like never before.

Conclusion

The need for a truly hybrid system, offering the best of DVCS and centralized features, has become clear. And because developers love Git, finding ways to tame Git sprawl and address the other complications it brings is an essential part of the complete solution, particularly for the enterprise.

Perforce Helix is the first and only product that covers all the bases, leaving no stakeholder out in the cold. Its centralized features have long set the industry bar, and its DVCS local mode is no different. With the new addition of GitSwarm, Helix also provides the most powerful Git hosting options as well, offering features found in no other DVCS system.

Perforce Helix is free for small teams and evaluation purposes, so why not download it from our web site and see for yourself? The only things you have to lose are all the limitations and problems you and your contributors have been suffering with for too long.

Footnotes

  1. Until they take a rebase to the knee and end their adventuring days.
  2. Gartner, "Market Guide for Software Change and Configuration Management Software", 26 August 2015.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
United States United States
John Williston, Ph.D., Developer Evangelist at Perforce Software

John is a veteran software developer for Windows, .NET, and the web generally as well as musician, philosopher, gamer, and all around self-admitted geek, who spends much of his time bringing those skills to bear on the challenges of marketing.

Comments and Discussions

 
-- There are no messages in this forum --