Application Development

Git 2.21 released with performance improvement, multi-pack indexes, enhanced repositories and more

2 min read

Yesterday, the team at GitHub released Git 2.21 with a new date format, improved performance and bug fixes from over 60 contributors.

What’s new in Git 2.21?

Performance and internal implementation

It is now possible to clean-up the code with optimization for the codepath that checks non-existence of loose objects. The “strncat()” function is now counted amongst the banned functions. This release comes with portability updates for the HPE NonStop platform. The loose object cache used for optimizing existence look-up has also been updated. The flaky tests can now be repeatedly run under load with the “–stress” option.

Human-readable dates with –date=human

This release comes with git log that displays the date for each authored commit. In this release, the timestamps will be displayed in Git’s “default” format (for example, “Tue Feb 12 09:00:33 2019 -0800”). Although Git 2.21 comes with a new date format –date=human which makes it possible to frequently switch between the human and machine-readable formats while putting together a pipeline.

Multi-pack indexes

Git 2.21 can create a multi-pack index file instead of repacking and this index file acts as a listing of objects residing in multiple packs while removing the need to perform expensive repacks.

Delta reuse with bitmaps

Git now comes with bitmaps and gives an optional on-disk data structure to record the sets of objects “reachable” from each commit. On the availability of this data, users can query it to quickly determine whether the client has a base object. This would result in server generating smaller packs that are produced more quickly for a faster experience.

Enhanced repositories

In Git 2.21, the repositories can now enumerate alternate tips, and make the corresponding transaction much faster.

Major Fixes

  • The corner cases in merge-recursive have been fixed.
  • The Refspecs configured with “git -c var=val clone” which did not propagate to the resulting repository, have now been corrected.
  • Now there is no need of configured username/email under user.useConfigOnly for creating commits.
  • In this release, the http-backend CGI process now cleans up the child processes.

Users seem to be excited about this release. One of the comments on HackerNews reads“Few Detecting files that differ only in case being cloned onto a case-insensitive file system is a great feature.”

To know more about this news, check out the release notes.

Read Next

GitHub launches draft pull requests

GitHub increases its reward payout model for its bug bounty program

GitLab considers moving to single Rails codebase by combining the two existing repositories

Amrata Joshi

Share
Published by
Amrata Joshi

Recent Posts

Top life hacks for prepping for your IT certification exam

I remember deciding to pursue my first IT certification, the CompTIA A+. I had signed…

3 years ago

Learn Transformers for Natural Language Processing with Denis Rothman

Key takeaways The transformer architecture has proved to be revolutionary in outperforming the classical RNN…

3 years ago

Learning Essential Linux Commands for Navigating the Shell Effectively

Once we learn how to deploy an Ubuntu server, how to manage users, and how…

3 years ago

Clean Coding in Python with Mariano Anaya

Key-takeaways:   Clean code isn’t just a nice thing to have or a luxury in software projects; it's a necessity. If we…

3 years ago

Exploring Forms in Angular – types, benefits and differences   

While developing a web application, or setting dynamic pages and meta tags we need to deal with…

3 years ago

Gain Practical Expertise with the Latest Edition of Software Architecture with C# 9 and .NET 5

Software architecture is one of the most discussed topics in the software industry today, and…

3 years ago