This is another in our discussion on DVCS and git (see our git category in the right column for more). We see DVCS and git as a major transformation in how software is created. In this post, I want to provide a listing of resources on DVCS. I will list each with a brief description and a link. I hope this is helpful.
Introduction to Distributed Version Control – Simplified illustrated guide that explains the differences, deltas, and benefits between CVS and DVCS. Includes a section providing key concepts in 5 minutes, as well as the advantages and disadvantages of DVCS and links to further resources. By BetterExplained.com.
CVCS vs DVCS and the Pros and Cons of DVCS git – Our post on this blog that covers the basic differences between traditional version control (CVCS) and the newer distributed version control (DVCS) and then discusses the pros and cons of DVCS.
If you have any questions on DVCS and how best to work with git and Stash contact us at: firstname.lastname@example.org.
RedMonk recently posted on Centralized vs Decentralized Version Control: 2010 vs 2012. They mentioned that the inquiries regarding decentralized or distributed version control (DVCS) technologies, such as git, has spiked. RedMonk went on to add that some organizations are considering migrations to such technologies, while others have committed to the move in general, but require data to justify their decisions internally.
In the RedMonk post, they looked at the question of DVCS usage via Ohloh over the past two years. The two most obvious changes from 2010 to 2012 are the decline in CVCS traction (centralized) and the growth of git (decentralized). git’s share, in particular, almost tripled in two years, while CVCS declined by better than 50%.
They also presented at chart of the leading repositories. Each decentralized repository, including git, demonstrated growth while the two centralized systems, CVS and Subversion, declined. Second, git substantially outperformed both Bazaar and Mercurial from a growth perspective.
It seems that developers are voting for decentralized git repositories with their feet, or perhaps their keyboard/mouse.
RedMonk showed further data that indicates there is still room for more growth for git. If you look at the absolute numbers, rather than growth, centralized repositories are still in the lead. Their data show that while nearly a third of all projects are now employing DVCS, versus 14% two years ago, almost 70% of projects remain in centralized version control (CVCS).
RedMonk concludes the git is the clear winner over the past few years.
In line with this trend, Atlassian Stash – Atlassian’s behind the firewall git repository manager – is gaining good traction in the market, as can be expected. BitBucket, their SaaS DVCS offering (supporting both git and Mercurial) is also growing fast – both being yet more alignment to this growing trend.
I spoke with Jens Schumacher, Atlassian’s Group Product Manager for developer tools. These tools include: Bamboo, Crucible, Fisheye, and Stash. Bamboo provides continuous integration and release management. Crucible supports code review and Fisheye allows you to search out source code artifacts of various source code management flavors and browse commits, files, revisions, or related people. It also integrates seamlessly with JIRA.
Enter Stash! Stash incorporates the latest and greatest technologies in DVCS source code management and Git, allowing you to create and manage repositories, set up fine-grained permissions, and collaborate on code in a secure, fast and enterprise-grade manner.
Jens continued, providing me more background on the development of Stash.
Stash is the latest in Atlassian’s developer tools suite and was released in the Spring of 2012. Atlassian’s existing developer tools are already quite popular in development houses, but still the developers wanted more. They wanted to be able to host code in their own repository behind the firewall.
More – engineers are always pushing the envelope: they wanted Git support, a massively popular and growing DVCS approach used in code development and management these days.
To cleanly meet this need in both a tool and extensibility, Atlassian decided to build Stash from scratch including a ground up extensible API approach, rather than on top of their existing tools.
Stash incorporates code review into the development workflow so the new code gets properly reviewed before it is merged with the existing source code.
To facilitate development, Stash allows developers to set up branches, where code changes can be made in isolation and reviewed before being integrated with the mainline. This separation makes development of new features less complex.
You can easily have new code reviewed while incorporating automated testing tools as well. Stash facilitates the merging of reviewed code into the core source code. This concept of a separate workflow for development is popular with open source efforts and Atlassian has now taken a leading industry position with the Stash offering, enabling this capability inside the firewall.
Integration efforts with Stash are already supported in a number of ways.
Per Jens, 80% of the Fortune 500, as well as many many smaller firms, use Atlassian JIRA for issue tracking.Stash is fully integrated with JIRA so you can link code in Stash to a JIRA ticket and track the progress of changes.
Stash also natively integrates with enterprise user directory systems, such as Active Directory or LDAP, to make deployment easier within the enterprise.In addition, again, Stash was built with an extensive REST API to make information within Stash easily integrate-able with other tools.
Jens gave me a simple use case. Their customers often want to migrate content from one repository to another or from the cloud to within the firewall. Stash can automate aspects of this common process to simplify the effort.
In the future, Stash will be enhanced with more branch permission capabilities to better ensure that all code gets reviewed before it is merged into the core source code. They are also working hard on scalability requirements to better serve their many large customers. Currently, Stash supports up to 500 user licenses. Finally, they are working on adding enhanced collaboration capabilities for code review.
Jens noted that Atlassian has a massive ecosystem. This is helpful as there already are a number of add-ons for Stash. For example, there is a badge add-on to acknowledge developers’ efforts and skills. Another is a chart add-on to provide statistics. AppFusions built a Stash commenting add-on for Atlassian’s annual CodeGeist competition. Also, add-ons are available to help with different workflows that organizations have in place.
On top of all that, Atlassian’s very popular SourceTree DVCS client further removes DVCS source code tool complexity, and is used to support and guide the process of adding new workflows with proper controls within branching efforts, among other.
Customer response has been very positive since the release of Stash earlier this year. The timing was right for the release, as developers were ready for it.
Jens’ team is now providing new releases every 7 – 9 weeks, with many of the new capabilities coming from customer input.
New needs are always arising in enterprise software development efforts, and many organizations and third party developers want to tackle these needs. Stash provides enhanced support for these efforts.