The move toward hybrid SCM is clearly a two-way street. While enterprise-grade, behind-the-firewall systems look to add distributed capabilities, the DVCS systems are working to create an “official” version of the code, and to add the management features found in the enterprise repositories.
To that end, Atlassian (keeper of Bitbucket) has created Git-centric Stash, which aims to bring distributed version control behind a firewall, with access controls and collaboration features. But Stash also gives developers used to DVCS a way to continue working in isolation—with autonomy—and with the same workflows, all while the organization maintains one central repository for the code.
According to Giancarlo Lionetti, group product marketing manager for developer tools at Atlassian, 80% of the SCM market is for software behind the firewall. “Bitbucket is in the cloud, but many of our customers wanted Bitbucket behind the firewall,” he said. “So we want enterprises to get the same structure as they would with tools that support Subversion or Perforce.”
Stash enables managers and developers to create clones of the main repository for working individually. After work is done, the project is put back into Stash for merging back into the main project. A feature called Projects enables managers to organize and manage repositories, and to administer them in a simple interface. Providing authentication, access and permissions is “all hard to do with Git behind the firewall,” Lionetti said, adding that Stash offers centralized management, either through Atlassian’s JIRA project- and issue-tracking tool, or with an LDAP server.
An integration with JIRA enables developers to associate issues to source code, so developers can see what changes, which commits and whose commits occurred in the code, Lionetti said. “This fits right into our message of code visibility,” he said.
Lionetti added that he thinks moving from pure DVCS to hybrid results in a better solution than moving from enterprise SCM to hybrid. “There’s a distinct advantage,” he said. “Git is built for speed. Merge, commit, branch are all native to Git. I’m skeptical as to how that will work in Subversion. It’s not what it’s meant to be.”
Yet Randy DeFauw, technical marketing manager at Perforce, maintained in an interview with SD Times in late April that Git and Mercurial were designed “to model discrete pieces of work, and can’t handle working with a huge project in an effective way.”
So, regardless of which direction you come from, the middle is clearly where you want to be.