Git 2.47 brings incremental multi-pack indexes and a basic branch search

Larger and more complex projects in particular benefit from the new features in Git 2.47, such as the improved search index in several packfiles.

Save to Pocket listen Print view
Lead story Git

(Image: erstellt mit Dall-E durch iX)

3 min. read

The version management system Git 2.47 offers a range of new features that particularly affect larger and more complex projects, such as incremental multi-pack indices, a search option for the base branch of a commit and an automatic merge configuration for VS code. A new platform support policy also regulates the handling of new "exotic" platforms.

The new Incremental Mulit-Pack Index simplifies the search in larger Git structures that have split their project into several packages (packfiles). Since Git 2.21, there has been a simple index for the search (Mulit-Pack Index, MIDX), which maps the content of the packages. However, updating this index becomes increasingly complex as the number of packages increases, as the update has to check all content completely. The new incremental process works with several layered index levels, each of which only saves the differences to the previous level (see illustration).

The new incremental index over several packfiles simplifies the search in packs.

(Image: GitHub)

The function is still experimental. Interested parties add new packages to an existing index with the command $ git multi-pack-index write --incremental.

The start branch for a commit was previously not so easy for developers to find in more complex Git structures, which the new Git version now simplifies. The command for-each-ref --format with the placeholder %(is-base:) solves this problem.

There are also improvements for users of VS Code who want to use its 3-way merge function. Previously, this required manual configuration, which can now be automated with the command $ git config set merge.tool vscode.

There are also many small changes, for example new functions for the reftables introduced in version 2.45, such as the configuration $ git config set --global init.defaultRefFormat reftable, which sets reftable as the default. The --exclude argument for the for-each-ref command can also be used. Large repositories with many references benefit from reftables.

If you no longer trust the security of SHA-1, you can now set SHA-256 as the standard for the checksum of objects: $ git config set --global init.defaultObjectFormat sha256.

The new platform support policy regulates the handling of new "exotic" platforms that want to integrate themselves into the Git project. Further information on the new version can be found in the announcements from GitHub and GitLab.

(who)

Don't miss any news – follow us on Facebook, LinkedIn or Mastodon.

This article was originally published in German. It was translated with technical assistance and editorially reviewed before publication.