Git 2.40 source control release

After three months of development, the release of the distributed source control system Git 2.40 has been published. Git is one of the most popular, reliable, and high-performance version control systems that provides flexible non-linear development tools based on branching and merging branches. To ensure the integrity of the history and resistance to retroactive changes, implicit hashing of the entire previous history in each commit is used, it is also possible to verify individual tags and commits with digital signatures from the developers.

Compared to the previous release, 472 changes were accepted into the new version, prepared with the participation of 88 developers, of which 30 took part in the development for the first time. Main innovations:

  • Added support for Emacs editor to the git-jump script, in addition to the previously supported Vim editor. Git-jump is used to pass position information in a file to a text editor for quick navigation and jump to code editing at a specific location. For example, git-jump can be used to switch the editor between lines resulting from parsing merge conflicts, evaluating the differences, and doing a search (you can do "git jump grep foo" and then quickly switch between the positions where the mask "foo" occurs) .
  • "git cat-file" provides support for using the "-s" and "--batch-check" options along with "--use-mailmap" to correctly determine the size of the object, taking into account the replacement of the identifier, carried out based on the email bindings specified in the file mailmap (previously, the "--use-mailmap" option only affected the output of the content, but did not take into account that the old and replaced name/email pairs can have different sizes).
  • Added "--source" option to the "git check-attr" command to select a tree with the necessary ".gitattributes" file that will be used to determine the actual attributes in the presence of multiple ".gitattributes" files in the repository.
  • The implementation of the "git bisect" command has been rewritten in C and built into the main git executable (previously the command was implemented in the form of a Shell script).
  • Removed the old Shell implementation of "git add --interactive" (in git 2.26, a built-in C version was offered, but the old Shell implementation remained available and was controlled by the add.interactive.useBuiltin setting).
  • Added '--merge-base' option to 'git merge-tree' command.
  • Added "--abbrev=" option to "git range-diff" command ".
  • Added the ability 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".
  • Support for expired passwords has been added to the account subsystem.
  • Input completion scripts for Bash implement a case-insensitive mode of operation.

Source: opennet.ru

Add a comment