Blogging from the Git Merge Conference at MACBA in Barcelona
Once again the contributors and major players in the Git ecosystem are gathered. Read along for news, announcements and stories from Git Merge 2018.
Last year Git Merge was in Brussels, this year we’re in Barcelona. It is a lovely city, and instantly I regretted not planning to have time to visit the city as a tourist.
As always the GitHub events team has found a great venue at MACBA. The rustic cathedral-like interior provides a stark contrast to the heavily tech-focused event going on inside.
As usual Git Merge is a two-day event. Git is developed as a traditional Open Source project, following a model from before the term Pull Request was coined. The development is truly distributed. The one day each year that the minds behind the Git Core actually sit together, to discuss roadmaps and issues are at Git Merge. It is a 30-person invitation only session, and I am eagerly awaiting a recap of their discussions.
For the rest of us, the mere Git Mortals, the Git Merge crew has been kind enough to provide us with entertainment and inspiration. The day was filled with cool thoughts and tools, from visualizations to automating as much as possible.
@kuychoca presenting a visualization tool for Git teaching.
I even had the pleasure of presenting the work that @Figaw and I have made for simulating software development workflows. You can even try out running your own workflow simulations with the Game of Dev Life Repository or just look at the slides.
Atlassian was the kind host of “Beers with Bitbucket”, yet another excellent opportunity to talk to the awesome people building and using Git. The first of the conference ended for me with the speakers dinner, we had great local food by the Mediterranean sea with all you can eat discussions on teaching Git. What a day!
Git Merge is a single track conference focusing on the all the stuff that goes on around Git. It is obvious from the schedule and the talks that Git is a mature technology.
Brett Smith of the Software Freedom Conservancy starts us off with a talk on the values of software. He has many other people started in software through computer games.
Brett Smith telling us the stereotypical, computer games started my interest in programming.
We see the old game engine ZZT, from 1991. Already at that point allowing people to build their own games. Transparency and extensibility as first class citizens seems to have been values that allowed the ZZT community to outlast the tech that it used.
While you might not know ZZT the author Tim Sweeney went on to make the Unreal game engine.
After a session with Diane Hosfelt, basically about their workflow at Mozilla, we skip to a more technical section of the day.
Carlos Martin Nieto of GitHub introduces the challenges of doing near-realtime incremental backups, when you have more than 28 million users and 38 million repositories.
Asking the real question “Why do we do back ups” he takes us through the default cases: disaster recovery, corruption and such. He shares the secret with us. The most common use case for the backups at GitHub: restoring repositories that users accidentally deleted.
Even though they spend around a year developing their new backup solution they are certain: It was worth it, their backup is now 90% more efficient! Impressive numbers.
Following Carlos, is the OG of Git talks: Edward Thomson, currently working at Microsoft. He takes us through what keeps him up at night: Security issues in Git. Edward is the maintainer of libgit2. If you have ever used Git, you are dependent on this, even if you didn’t know it. libgit2 is at the heart of Github, Gitlab, Microsoft VSTS and Bitbucket.
Communities intersecting and cooperating on security releases.
We get a fascinating and technical tour through a specific vulnerability, that allowed for remote code execution. Again we see the power of the Git community and the Version Control community in general. This specific vulnerability was originally noticed in Mercurial, who then told Git “You might want to look into this”. And sure enough the error was also present there. I for one am very happy that the technologies that keep our most precious belongings safe are open, responsible and community-driven.
Another very interesting point that Edward brings up is that the demographic of the developers of Git are extremely different from that of the Git users. The vast majority of Git usage is on Windows clients, while the developers primarily sit on Linux. This leads to many challenges and assumptions. To paraphrase Ed, “The most dangerous part of software development is our assumptions”
After lunch we get a very interesting talk from Stephen Hathaway. His design team is using Git to version artifacts. It seems that them versioning their artifacts have changed the way they think. Stephen have truly but an unlikely crowd to working the right way. Afterwards I had lovely discussions with Stephen. I truly look forward to seeing him give another talk in a few years. It will probably be called something like “We finally did it, graphical designers solved their workflow”.
I can feel myself getting a little jaded from the conference track, and drift out in the halls. There I meet fellow Gitters, and talk about big and small things Git. When I go back into the conference hall, I see a familiar face and slide on the big screen. It’s Andrey, my former colleague at Praqma, who’s now traveling the world as an IT-consultant.
He still knows about how software should be made, and what better story to illustrate than our very own, Continuous Delivery Storyline.
The best to tell the story of “Getting Git Right”.
The focus of the conference track is more about what to do when you are in Git, than technical deep-dives.
We are learning about the difficulty in showing useful information to the users, especially in an efficient matter. It is not just about lines of code, how can we track information across refactorings?
Grant Matthews of Atlassian, tells us about his endeavors in annotating diffs. Pablo Santos Luaces follows up with the concept of semantic merges.
What happens when we want to resolve more merges automatically, than is possibly with Git out-of-the-box. They’ve run a ton of test against public GitHub repositories and shown than a significant portion of merges could be automatically resolved by their tool. You can try it out on your own public repositories here: mergedroid.
Automatic merges with the mergedroid.
The final talk of the day is “Making Git for Windows” with Derrick Stolee and Johannes Schindeling both from Microsoft. Johannes is the primary maintainer of Git for Windows. They face many challenges, including most of the developers of Git being on Linux. Even through those hurdles they manage to build Git for the platform where it has most users. One of the things that truly has helped them move faster, is automation (no surprise there!).
The cycle time from a new release of Git core to a new Git for windows release candidate is getting shorter and shorter. I wish for Johannes that the error reports that he receives will be well described.
Git for windows - secret sauce
Derrick Stolee takes over from Johannes, and talks about performance in Git for Windows, as well as the challenges of having the entire Windows source code in a repository.
Derrick runs through some impressive performance gains that the Microsoft have contributed to the Git core. While I’ve always felt that performance improvements in Git, and even making a virtual filesystem just to be able to contain all their code in one repository is wrong, I’m getting to a new understand.
For huge codebases moving to Git, and making the monolith workable in Git, might be a necessary prerequisite to be able to even consider splitting up the architecture. I for one know that refactoring in ClearCase seems almost impossible.
Andrey and I go to grab a bite before the afterparty, and we meet Timea, another missed colleague of mine.
After getting some food we go to a craft brewery where GitLab is hosting a party. We get excellent beer, and end up having a very fruitful discussion with participants from both GitHub and GitLab. While Timea primarily envisioned the participants as their Mascots fighting I think this was yet another case of the Git community being fantastic! It does not matter if you are from GitLab, Microsoft, Atlassian, GitHub or Praqma, we are passionated about Git and that is all that matters. The Git community always surprises me by its genuine interest in how Git is used in different contexts and the challenges that follows it.
This year we did not get any large announcements at Git Merge. It felt a bit boring, but in retrospect it is a good thing. Git is a mature tool, and we are getting better and better at using it.
If you are not already on Git, and would like to get some assistance, reach out to us, we love helping people move to a modern version control system!
Imagine a workflow so sophisticated that you couldn’t break the integration branch even if you tried. And imagine being able to manage all of the issues, promotions, and deploys without leaving your terminal.
An automated release train, operated directly from my shell?
We are all a bunch of tech and tool nerds. We enjoy hacking out a clever solution. Finding exactly the right commands and switches to solve the challenge at hand. Sometimes we go a bit overboard. Many developers don’t think Git is something that we should tinker with. But it is!
The tale of sharpening your knife skills
This is a conference in Gothenburg for software developers, especially those with some experience of agile and a desire to improve their skills.
Industry experts and pioneers visit Gothenburg
Jenkins is one of the best adverts for open source and at Praqma we have been using it since the very beginning. We enjoy giving something back to the community by hosting Day of Jenkins, and this year’s event was packed with exciting developments. Read on!
Day of Jenkins [as code] - A summary
Continuous Delivery and DevOps are here to stay and not because they’re being practiced by trendsetting unicorn companies. The fact is science tells us that these approaches work and this year’s conference gave us lots of examples.
Continuous Delivery and DevOps - Not Just For Unicorns
DevOpsDays Copenhagen 2018 was a great success. Inspiring talks and a pleasant community. I had the pleasure of being the host of this event. I decided to kick off the event with a song about DevOps. See the video and lyrics here.
A whole new (DevOps) world
Continuous Integration and Code Review are strongly correlated with success. Many use Pull Requests for code review, but for co-located teams this can be an obstacle for CI. Is there a better way?
A short story about Pre-tested Integration
We strive to continuously improve, so the 8th gathering in our Continuous Delivery Alliance will feature all the good things from the 7th meeting in a slightly evolved format.
Continuously improving our format
We had our 7th gathering in the CoDe Alliance a few months ago and have worked to distill and evolve many of the good ideas that came out of our sessions. Our aim is to turn our interesting discussions into tangible projects and running code.
What’s next for the CoDe Alliance?
Albert Rigo shares his thoughts on the Atlassian Accelerator Day in Copenhagen, and how he learned to quickly and comfortably scale Atlassian Data Center, upgrade with zero downtime and stop spending his weekends upgrading JIRA.
A day to learn how to scale fast and upgrade without downtime
Hear about upcoming events in Scandinavia, latest tech blogs, and training in the field of Continuous Delivery and DevOps