Git 2.53

February 2 introduced Release of the distributed source code management system Git 2.53.

Git is known for its high performance and provides means for nonlinear development based on branching and merging. To ensure the integrity of history and resistance to 'backward' changes, implicit hashing of the entire previous history in each commit is used, along with digital signatures from developers for individual tags and commits. Git code is distributed under license GPLv2+.

Compared to the previous release, the new version includes 466 changes made with the participation of 70 developers (21 of whom contributed to Git for the first time). Key innovations:

  • Added the ability to apply the geometric repository repacking strategy (git repack --geometric) to partially cloned external repositories operating in promisor mode (missing objects are fetched as needed). When repacking with the --geometric option, .promisor pack files are handled and packed separately. The geometric strategy reduces maintenance time for large monorepositories by selectively repacking objects and excluding unnecessary resource-intensive operations, such as merging all pack files (the geometric progression of pack file sizes is maintained, where each subsequent pack file must be at least double the size of the previous one).
  • The git fast-import team has added the --signed-commits=strip-if-invalid option to remove digital signatures from imported objects that became invalid after rewriting part of the repository history. Previously, you could either import or delete all signatures without distinguishing between valid and invalid ones. The strip-if-invalid option allows for the implementation of tools to retain valid signatures and re-sign objects with obsolete signatures.
  • The output of the git repo structure command has been updated to include the size of all reachable objects in the repository, broken down by their types. This information is now presented in a readable format with units of measurement and is shown separately for actual size and disk usage, allowing for an assessment of the overall size of the repository on disk:

$ git repo structure | Repository structure | Value | | β€”β€”β€”β€”β€”β€”β€” | β€”β€”β€”- | | * References | | | * Count | 1.78 k | | * Branches | 5 | | * Tags | 1.03 k | | * Remotes | 749 | | * Others | 0 | | | | | * Reachable objects | | | * Count | 421.37 k | | * Commits | 88.03 k | | * Trees | 169.95 k | | * Blobs | 162.40 k | | * Tags | 994 | | * Inflated size | 7.61 GiB | | * Commits | 60.95 MiB | | * Trees | 2.44 GiB | | * Blobs | 5.11 GiB | | * Tags | 731.73 KiB | | * Disk size | 301.50 MiB | | * Commits | 33.57 MiB | | * Trees | 77.92 MiB | | * Blobs | 189.44 MiB | | * Tags | 578.13 KiB |

  • A new subcommand, is-needed, has been added to the git maintenance command to perform repository maintenance operations only when necessary.
  • In the experimental git replay command, links are now updated by default within the transaction instead of just showing where the links should point without updating.
  • The git blame command now offers the option to choose a difference calculation algorithm via the option --diff-algorithm=.
  • The git repo info command has added the option --all.
  • Support for symbolic links has been ported from Git for Windows to the Windows platform.

The previous release included the warning the default inclusion of component builds in Rust with Git 2.53. However, in Git version 2.53, there are actually added only improvements to Rust support (the ability to build without GNU sed), but building with Rust using Makefile remains disabled by default (requires the WITH_RUST flag), while using Meson automatically enabled if the rustc compiler is available. In Git version 3.0, the Rust tooling intend to is to be included among mandatory build dependencies.

Source: linux.org.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers πŸ”₯ Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster