Release of Git version control system 2.40

After three months of development, the release of the distributed version control system Git 2.40 has been published. Git is one of the most popular, reliable, and high-performance version control systems, providing flexible non-linear development tools based on branching and merging. To ensure the integrity of the history and resilience against "backdating" changes, implicit hashing of all previous history is used in each commit. Digital signatures from developers can also validate individual tags and commits.

Compared to the previous release, this new version includes 472 changes prepared with the participation of 88 developers, 30 of whom contributed for the first time. Key innovations include:

  • Support for the Emacs editor has been added to the git-jump script, in addition to the previously supported Vim editor. Git-jump is used to pass information about positions in the file to the text editor for quick navigation and editing code at specific locations. For example, git-jump can be used to switch between lines obtained from merging conflict resolutions, assessing differences, and performing searches (you can execute "git jump grep foo" and then quickly switch between positions where the pattern "foo" occurs).
  • In "git cat-file", support has been added for using the options "-s" and "--batch-check" together with "--use-mailmap" to correctly determine the size of the object, taking into account the ID replacement done based on email bindings specified in the mailmap file (previously, the option "--use-mailmap" only affected the content output but did not consider that old and replaced name/email pairs may differ in size).
  • An option "--source" has been added to the "git check-attr" command to select the tree with the required ".gitattributes" file, which will be used to determine the current attributes in cases where multiple ".gitattributes" files exist in the repository.
  • The implementation of the "git bisect" command has been rewritten in C and integrated into the main Git executable (previously, the command was implemented as a Shell script).
  • The old implementation of the command "git add --interactive", written in Shell, has been removed (in git 2.26, a built-in C version was proposed, but the old Shell implementation remained available and was controlled by the setting add.interactive.useBuiltin).
  • The command "git merge-tree" has been supplemented with the option ‘--merge-base’.
  • The command "git range-diff" has been supplemented with the option "--abbrev=".
  • It is now possible to override the list editor for the interactive mode of the rebase command by setting the GIT_SEQUENCE_EDITOR variable through the "git var" command, similar to "git var GIT_EDITOR".
  • The account subsystem has added support for passwords with expiration limits.
  • In the Bash command-line completion scripts, a case-insensitive mode has been implemented.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster