March 20, 2012

Perforce is a Git Developer

Git at Scale

If you can pardon the hyperbolic headline, I’ll explain how Perforce came to submit a few patches to the Git open source project and what our future plans are.

We’ve been studying Git for some time. We like to keep an eye on players and technology in our space, partly because it’s something we think our customers appreciate, partly because it’s due diligence as a leader in the SCM/Version Management space, and partly because it’s just plain interesting! But something unexpected happened last summer as a result of this study of competing technologies: the relationship between Git and Perforce turns out to have synergistic appeal with a peanut butter twist, as outlined in my blog articles Perforce and DVCS: Two great tastes that taste great together and Git as a Perforce Client

The idea of Git as a Perforce client led us to a feature of Git that’s of clear, direct interest to us: the git-p4 connector included in the source distribution. How well does it perform? What are its limitations? Once we were inside the code, it was easy to identify a number of small changes to improve it. It was then a minor, but significant, step to code a few patches and submit them to the Git open source project.  Thanks to the wonderfully receptive group of open source developers, our patches were accepted and a mutually beneficial relationship was established. 

It was actually after all this had taken place that it occurred to me that Perforce has become a Git developer, if only in a tiny way. It also felt good to help developers that want to use Git’s power of versioning in the local workspace combined with the enterprise-hardened central repository of Perforce. So in this modest way, we are helping create that “peanut butter cup” of “two great tastes that taste great together.”

Of course, not everyone has the same taste in peanut butter cups, so Perforce offers P4Sandbox (an all Perforce syntax product solution containing several popular features of distributed version control systems) and is also developing a server-side component that makes a Perforce server capable of transparently responding to Git push-pull requests just like a regular Git repository.

But if you want to use Git and Perforce together today, you’ll likely be looking at the git-p4 feature of Git as either a tool or a starting point. So to get you a little further along the road, we’ll be making an increased effort on git-p4 in the coming months. Here’s where you can give us a hand: letting us know what’s important to you in a git-p4 feature set. Please add your suggestions to the comments below!