Github Blog

Highlights from Git 2.50

thumbnail

Highlights from Git 2.50

Improvements for Multiple Cruft Packs

  • Git introduced support for multiple cruft packs in version 2.43, allowing unreachable objects to be stored in packs with a timestamp file for safe discarding.
  • This feature enables the gradual reduction of cruft packs in a repository over time by combining existing packs together.

Incremental Multi-Pack Reachability Bitmaps

  • Git 2.47 introduced preliminary support for incremental multi-pack indexes, which act as a single pack file for objects spread across multiple packs.
  • Multi-pack reachability bitmaps, specific to MIDXs, allow quick addition of reachability bitmaps for new commits in large repositories efficiently.

Superseding Recursive merge with ORT

  • ORT (Ostensibly Recursive’s Twin) merge engine has replaced recursive entirely in Git 2.50, making recursive merge obsolete.
  • ORT was initially accessed through a strategy option but is now the default merge engine in Git's source code.

Object Filtering Mechanism in Git

  • Git 2.50 incorporates the object filtering mechanism used in partial clones to the git cat-file command.
  • Users can now filter objects more concisely by type, enhancing object manipulation for scripting purposes.

--noEar Option for Unspecified Object Types

  • The --noEar command-line option, although relatively unknown, was previously used with object types other than common ones like commit, tree, tag, or blob.