valiantys-logo
Back

Practical Git

Atlassian has made the jump to Git around the en of 2012. After months of experience they came up with a list of good practices that have helped them be successful and that will help you too.

Git at Atlassian

Being in an open company, Atlassian teams are happy to share knowledge about their products. Recently they started sharing about the technical side of things. After a series of blog posts detailing their switch to Git this past summer, they started a series of webinars presenting this technology in details. Sarah Goff Dupont, Product Marketing Manager for Bamboo at Atlassian, recently gave a webinar calledGit Ready. Here is what to remember.

Centralized repository

Even though Git enables to get out of the centralized repository paradigm, it is still the best option for the vast majority of software companies. Free/Libre software projects have good reasons to go with the Integrator or Dictator models because the list of contributors on those projects is not easily controllable. For software companies though, the list of collaborators is well known and the risk of congestion at the integration level becomes to big. Plus the need for decentralization is rarely important.

Feature branching

This is one of the major benefits of Git over SVN. We have all felt the dread of the incoming merge. Our beloved features facing the unavoidable conflicts management session. With Git, this management is immensely reduced. Git does most of the merging for you, and if you manage to keep your user stories size small, there’s a good chance Git will be able to do it all without your help.

Another big advantage of these feature branches : they allow developers to backup their work regurlarly without having to worry about disrupting other people’s work. This considerably limit the risk of loosing precious work.

Pull Requests

A good way to key a good level of code quality on your repositories is to make use of pull requests accompagnied by code reviews. Stash, also developed by Atlassian, helps you automate these code reviews in order to smooth the whole process. It also gives you a simple way to finely set access control on your repositories, which can be a little tricky with the Git tool.

What about CI?

CI with BambooWith an explosion of feature branches, the CI server can quickly be overloaded. Even if automation is important and should always be attempted; with the example of Bamboo which can automatically clone plans for cloned branches; it is not an absolute obligation. You might keep your feature branches plans manual for example. The size of your teams and that of your CI server will lead you to the appropriate decision.

More with Git Hooks

Hooks are scripts triggered on particular events of the Git cycle. They add interesting actions either on the server or locally on the developer’s machine. With hooks, you can add code formatting or code validation. You can check commit messages and force a specific format, even trigger cascading merges, etc. Hooks are powerful tools that enable to automate event more your development processes.

Dream or Reality ?

Is what Atlassian managed applicable to every company ? At Valiantys, we have made the move towards Git 2 weeks ago. Far from having the necessary experience to analyse all the benefits of this technology, we can still already measure some real and meaningful benefits compared to SVN.

Speed

Speed This is not a myth. Git is way faster. Cloning a repository takes mere seconds when it used to take several minutes for the initial checkout of a SVN repository. And what about analysing log history ! The local Git repository already contains all the necessary information and this operation is almost immediate. Whatever the size of the repository.

Feature Branches

They are talked about a lot, but they deserve it. Feature branches revolutionize a developer’s life.

Integration with the Software Factory

Software factoryWe were already using Jira, Confluence and Bamboo. The move to Git enabled us to add Stash (accompagnied by SourceTree) to the stack. Moving towards an always better integration of the entire chain of development.

Conclusion

Judging the evolution of its user base only these last years, Atlassian is a successful company. One of the reasons of this success resides in their management of the life cycles of their many products. When many companies have trouble delivering more than one release per year, at Atlassian, new releases are available several times per trimester, sometimes every 3 weeks for some products. And Git is a key tool in the process.

Cutted Triangle

Subscribe to Valiantys Newsletter

Registered request ! Subscribing... This is not an email An error occured

In accordance with our privacy policy, we are committed to respecting your personal data.

Contact us

Our Atlassian certified consultants will be happy to answer you.

Join us

We're building the next dream team - Are you in?

Follow us

We use cookies for the operation of our website. This is to improve its use, to personalize your experience, and to compile visitor statistics. By continuing to use this site, you consent to this policy. You can manage the settings and choose whether or not to accept certain cookies whilst browsing. For more information, see our privacy policy. Our privacy policy

Privacy settings

In order to facilitate your navigation and to provide you with the best possible service, we use cookies to improve the site to the needs of our visitors, particularly according to the number of visitors. For more information, please read our privacy policy. Our privacy policy

Recaptcha

Google reCAPTCHA is a system designed to distinguish humans from computers, so that bots are unable to maliciously fill out forms on behalf of a human being.

Analytics

Used to send data to Google Analytics about the visitor's device and behavior. Tracks the visitor across devices and marketing channels. Used by the social sharing platform AddThis to store the user's usage history of the AddThis sharing widget. Registers a unique ID that is used to generate statistical data on how the visitor uses the website.