Answers to Often-Asked Questions about Our New Distributed Version Control Capabilities
I recently did a DevTalk introducing the new distributed version control system, or DVCS, features we’ve added to Perforce Helix. If you missed the DevTalk, you can see our new features in action by watching the on-demand version. I got a number of really good questions at the end of these talks, so I thought I’d take the opportunity to provide some more detailed answers here.
Can you do all that DVCS stuff from P4V?
It’s clear from the questions that the Helix Visual Client or P4V is used by many, whereas the demonstration focused solely on the command line, or P4. The answer is a bit yes because you can use P4V right now with a local repository through something of a hack. But the answer is also a bit no because full and proper support isn’t yet available.
We are committed to providing a first-class experience in the GUI as well, and future releases will only improve our capabilities and make it easier to use. In the meantime we appreciate your patience.
How do these DVCS features work with Swarm?
This is another great question, and the answer is a bit more detailed than I had time to give during the live Q & A session. The reason is that Swarm, our code collaboration tool, supports multiple workflows and how it will impact your organization depends upon what you’re already doing.
If you’re using post-commit review—the practice of reviewing changes only after they’re already submitted—then things will work for you as they always have. A push from a local repository to a shared server looks like any other submit.
However, if you’re using pre-commit review—shelving your changes and letting that trigger a review before doing a submit—then the answer is a bit different. The Swarm team hasn’t yet had a chance to make things work as nicely, so at the moment the trigger doesn’t fire and create a review. A future release will address this issue. Again, we appreciate your patience in the meantime.
What are some incentives to using Helix native DVCS features over Git?
Now we get to the heart of why we thought it important to create another DVCS system. Our DVCS is distinguished sharply from Git by its advanced features:
- Helix doesn’t choke on large files, large numbers of files, or otherwise require you to monkey around with extensions, plug-ins, or other systems as a means of hosting anything outside the repository (or dividing content into a plethora of repositories). Helix DVCS features were built from the ground up with the enterprise in mind. As such, they can bear any load.
- Helix provides safe and simple manipulation of local history without any of the pains that accompany an accidental Git forced-push. Developers can treat their history as a first-order work product and modify it without worrying they’re going to drive their teammates nuts.
- Helix provides much more flexibility in cloning, supporting narrow clones (i.e., cloning only a small “slice” of the entire back-end “pie”), content restructuring thanks to our repo-remapping technology, and use of multiple remote specifications within a single local repo. No other DVCS system offers you this kind of power and flexibility.
- Helix provides security that isn’t an afterthought, offering finely grained permissions for files on shared servers. And our new threat detection capability monitors shared server logs with behavioral analytics to keep a watchful eye on every transaction, intelligently detecting, assessing, and reporting risks before somebody walks out the door with your valuable IP.
All that being said, die-hard Git users are also welcome at the Helix table. Helix gives you options instead of mandating a specific tool or workflow. Git performs as just another Helix client, allowing developers to use native Git and its entire ecosystem right alongside others using native Helix DVCS features.
Finally, let me close by offering a set of links to previous blog articles on the subject, as they provide more detail about working with the new DVCS features in Perforce Helix. They also provide some getting-started primers for Git and Mercurial (Hg) users that will help minimize the learning curve.
- DVCS Zen, No Motorcycle Maintenance Required
- Branches, Branches, Branches
- Attack of the Clones
- Neatness Counts
- Remotes Made Simple
- Helix Versioning Engine for Git Users
- Helix Versioning Engine for Hg Users
These aren’t the only DVCS-related blogs we’ve published (click here for the complete list), but they’re the subset thereof that informed the content for my DevTalk. Take a look, give it a spin, and see if you agree that the new features of Helix are truly a better DVCS for everyone.