After three months of development it has been unveiled the launch of the new version of the popular distributed source control system Go to 2.32. Compared to the previous version, 617 changes were adopted in the new version, prepared with the participation of 100 developers, of which 35 participated in the development for the first time.
For those unaware of Git you should know that this is one of the most popular version control system, reliable and high-performance, providing flexible non-linear development tools based on branching and merging.
To ensure history integrity and resistance to "retroactive" changes, implicit hashing of all previous history is used in each commit, it is also possible to certify with digital signatures of individual tags and commits developers.
Git 2.32 Key New Features
In this new version instead of the mechanism GIT_CONFIG_NOSYSTEM which is used to avoid reading a configuration file from the whole system, now it is proposed to use the GIT_CONFIG_SYSTEM mechanism, which allows you to explicitly specify from which file the system-wide configurations should be loaded, as well as the parameter GIT_CONFIG_GLOBAL to override user-specific settings in $ HOME / .git when setting the variable GIT_CONFIG_SYSTEM.
Another change that has been made is that now when the second version of the Git communication protocol is used, when executing "git push", the definition is implemented on the receiving end, which made it possible to bring the efficiency of "git push" to the level of "git-search»And remove the loading of objects that are not needed.
The option "-trailer [= ] "Has been added to the" git commit "commandWhich makes it easy to attach your own structured information in the key / value format upon confirmation, which can then be processed by the command «interpret-trailers«.
It is also noted that the option «–Reject-shallow" to "git clone»To disable shallow mode repository cloning (no full change history), plus a hide email mode has been added to gitweb, which replaces email strings in the output.
The processing logic of the command «git apply --3way«, Which now first tries to apply the three-way merge algorithm and only in case of failure or conflict reverts to the usual patch application (previously it was the other way around).
Added option «–Diff-merges =»To the« commandgitlog»And the log.diffMerges configuration to select the default mode, as well as a additional protection to the "git add" and "git rm" commands against the modification of data in routes outside the scope of the dispersed payment operation.
- The option "–Filter = object: type =»Has been added to the« commandgit rev-list»To exclude a certain type of objects from the package file generated by the command pack-objects.
- Negative values are not allowed in git pack-objects for options that take numeric values, such as –window and –depth.
- In the command «git apply»It is allowed to specify the options«–3way" Y "–Cached" at the same time.
- The command "git commit»Has an extended version of the« –fixup »option (creating a commit for« rebase –autosquash »).
- The command "git send-email»Has taken into account the configuration of core.hooksPath.
Counters other than integers are allowed in git format-patch -v .
- A simple IPC interface was added to create services like fsmonitor.
- File processing stopped ».gitattributes "," .gitignore "and" .mailmap»If they are symbolic links.
For HTTP transport, support has been added for caching a password used successfully to unlock a certificate.
- The command "git stash show»Has the ability to display the untracked portion of the temporary storage file store.
A more advanced strategy has been proposed to repackage a repository using the command «git repack«, Which allows to reduce the consumption of resources during repackaging.
Finally if you are interested in knowing more about it about this new version, you can check the details in the following link.