The latest version of the open-source distributed version-control system Git is now available. Git 2.9 features new features, enhancements and bug fixes.

In the latest version, Git aims to make submodules faster and more flexible than before. In the last release, the team gave users the option to fetch submodules in parallel in order to save time. This time it is extending that option to cloning, updating or processing submodules. In addition, users can now specify how to clone and fetch submodules.

Another key feature in version 2.9 is the update for diffs. “If you’ve used Git, you’ve probably looked at a lot of diffs. Most of the time the diff shows exactly what you did: changed some lines, added some new ones, or took some away,” wrote Jeff King, engineer at GitHub, in a blog post. “But because Git generates the diff only from seeing the ‘before’ and ‘after’ states of your files, sometimes the way it shows the changes can be pretty confusing. Git 2.9 features a new heuristic for the diff engine in order to take out any existing complexity, allows users to customize diffs with different colors, and gives users the ability to ask Git to filter diffs.”

(Related: The hidden hazards of squashing Git commits)

Git 2.9 also has updated its interactive rebase in order to make it easier for users to write out instructions. “If you’re a neat freak when it comes to commit history, you may have used Git’s interactive rebase,” King wrote. “It’s great for fixing commit messages, or squashing, splitting, or reordering commits. But at its heart, interactive rebase is really just a recipe of instructions to follow: pick this commit, then squash that one, now edit the message on this one, and so on.”

Other features include the ability to specify a custom path for hooks, rename detection for diffs, and improvements to shell completion.

The full release notes are available here.