Inside Atlassian

Author

Nicola Paolucci

Article in Developers
How to handle big repositories with Git

Git is a fantastic choice for tracking the evolution of your code base and collaborating efficiently with your peers. But what happens when the repository you want to track is really really big? In this post I’ll give you some techniques for dealing with it. Two categories of big repositories If you think about it […]

Article in Developers
Code Approval Policies Explained

Professional teams that produce quality software and maintainable systems often employ a lightweight process to safeguard the introduction of new or updated code to their stable branches. A code approval policy is an agreement within a single team or an entire organization to follow a set of rules regarding how and when code is accepted […]

Article in Developers
Smaller Java images with Alpine Linux

Sometimes I need to be hit in the head with an axe to find a solution to a problem that has been bugging me forever. A minimal Java container has been on my wish list since I found out about Docker and I’ve been writing about running Java in Docker for sometime already. Official Java images have historically […]

Article in Developers
Collating repositories or grafting earlier history with Git

Let’s add another arrow to our already full quiver of version control tools and techniques. Do you know that the Linux kernel you clone normally contains only a part of its entire history? If you need access to its uninterrupted evolution since the first commit you have to “graft” a few separate repositories together chronologically. In this post I’d […]

Article in Developers
Static Go binaries with Docker on OSX

Recently I’ve been writing a service in Go to enhance the projects dashboard on Bitbucket – if you haven’t heard we launched Atlassian Connect for Bitbucket as a way for anyone to build add-ons for three millions of Bitbucket users out there. Like many other Gophers I’ve been happily deploying my Go services using Docker. The process is smooth and […]

Article in Developers
Learning Go with flashcards and spaced repetition

This year I have been choosing Go for all my coding projects. Go is brilliantly fast, simple to pick up, it has a powerful concurrency model based on message passing, and no forced – always on – object orientation. My impressions are similar to the ones many have previously articulated well – for example see “Go is unapologetically flawed…” […]

Article in Developers
The power of Git subtree

Git subtree allows you to insert any repository as a sub-directory of another one. It is one of several ways Git projects can manage project dependencies. People with good memory will remember I wrote about the usage and the advantages of the command in an earlier piece on Git submodule alternatives. The basics of Git subtree Let’s review […]

Article in Developers
Feature Branches, Builds and Multiple Environments

In our recent Dev Den Office Hours we were asked some very interesting questions. One that caught my attention and on which I elaborated a bit on was the following: “One question I’ve had a hard time finding info on is in setting up feature branching with multiple environments (dev, test, prod for example) […] I’d love […]

Article in Jira Service Management
Pull Request Merge Strategies: The Great Debate

When a piece of work is complete, tested and ready to be merged back into your main line of development, your team has some policy choices to make. What are your merge strategy options? In this article I’ll explain the possibilities and then provide some notes on how we do it at Atlassian. Hopefully at […]

Article in How We Build
One weird trick for powerful Git aliases

(Yes the title of this post is a pun, apologies!) I have written about aliases before! See for example a collection of my favorite git aliases or peruse my personal list on Bitbucket. Recently at our Summit I showed a simple technique that can really unleash the power of your Git command line. Several people […]

Article in Developers
Flux step by step

Facebook has recently presented a new way to compose applications, an application architecture they named Flux. They reported that as modern web applications grow in complexity, this model eases the maintenance and the cognitive load required to develop them. I jumped in excitement (it’s true!) as I immediately saw the beauty of the model. But […]

Article in Archives
Pull request proficiency: Fetching abilities unlocked!

Nowadays applying a fix to a project is as easy as creating a fork – which conjures up a full remote copy of the project for you to hack on – selecting the file you want to change, pressing Edit and committing your fixes. What if you are at the receiving end of a pull […]

Article in Archives
It happened: Git 2.0 is here and it’s full of goodies

This major release of git has been brewing for a long time and I am excited to go on the hunt in the Changelog to find cool bits of awesomeness. As usual if you want to catch up with past git releases, I’ve been doing this exercise for a while, check them out: 1.8.2, 1.8.3, […]

Article in Developers
Git and project dependencies

Consider the following questions: How do you handle project dependencies with git? Our project is made up of multiple inter-dependent repositories. Currently we manage those with svn:externals. What’s the best way to handle those with git? How do you split a very big repository in smaller components using git? The topic appears to be a big pain […]

Article in Archives
Trust the merge and branch simplification musings

Our recent webinar featuring product rock stars Jens Schumacher and Ken Olofsen gave a great overview of git workflows. Branching workflows go from bare and simple, to complex, robust, and defensive. What is the level of complexity and safeguard needed by your organization? This post covers the compromise between nimbleness and robustness, with some guidelines to choose your own git adventure and lessons learned inside […]

123Next Page »