Linus Torvalds – creator of Linux and champion of open source software – is clearly a legend. Nearly everyone who uses a computer benefits from his intelligence even if they’ve never heard of the Finnish-American software engineer. In 2005 he made another important contribution to the technology industry. His work to bring Git, a version-control system for computer files, to developer teams has made it one of the most popular version tracking tools available today.
The development of Git follows a familiar tale in the software development space. An existing system no longer worked for a group, so they decided to make a better one.
It started with the Linux kernel, an open source operating system. From 2002 to 2005, the kernel project used a distributed version control system (DVCS) – or a way to track changes in computer files – called BitKeeper. During this time, the commercial company provided the DVCS free of charge. However, this changed in 2005, and as a result the Linux community built their own tool – Git.
They had a few goals for improvement in mind, including:
- Faster speed
- Better efficiency with large projects
- Improved designCapable of providing support for linear and non-linear development
- Fully distributed
The Linux project team has been successful in building a relevant tool. The latest Stack Overflow Developer Survey reports that 87.2% of respondents use Git for version control.
Git tracks data during any file changes. It captures the who, what and why:
- Who changed the file
- What exactly was changed
- Why did they make the change
Tracking this information allows multiple users to work on a project file at the same time. Revisions are called checkpoints, and Git allows checkpoints to be shared with other people on the team.
With Git, revisions go through three stages:
- Staged: Developer marks a file for edit
- Modified: Developer edits a file but doesn’t save it yet
- Committed: Developer saves snapshot of changes to local database
It is a unique VCS in that it has a staging area and because it saves/commits only a snapshot of the changes to a local database rather than saving the entire file in a centralized location.
Developers in the open source space are familiar with the problems associated with multiple parties working on a file simultaneously. From merging changes with multiple users to pausing updates to fix a bug to processing large amounts of code, Git is efficient handling all of these situations.
Given its Linux roots, it’s understandable that developers quickly adopted Git since its launch. Linux is one of the most loved and used platforms among developers.
Git also offers several capabilities that make developer teams’ jobs easier. They can build their own workflow and aren’t required to fit their work to a VCS’s protocol. It’s relatively easy to merge content together from different team members. Its speed is also a significant benefit to developer teams.
As Microsoft shares:
“Errors are usually detected in minutes, not hours or days. Currently, we have more than 200 pull requests and 300 continuous integration builds per day. Together, that amounts to 500 test runs every 24 hours, a level that would have been a fantasy without this workflow.”
With so much data being collected in Git, we recognized a need to gain visibility and analyze this information. Gitalytics is designed to use the data points submitted to Git to produce performance dashboards for developer teams. This helps them understand what is happening in their teams, what is working well and what could be improved. This information can be helpful both in real-time, during performance reviews, and for senior engineers to prioritize their workday based on upcoming pushes in the system.