After three months of development published Release of a distributed source code management system git 2.36 . Git is one of the most popular, reliable and high-performance versions management systems that provide flexible nonlinear development tools based on branch and fusion of branches. To ensure the integrity of history and resistance to changes in the “rear-number”, implicit hashing of the entire previous history is used in each com.
Compared to the past release to the new version, 717 changes prepared with the participation of 96 developers, of which 26 for the first time took part in the development. The main innovations :
- in the “Git Log” and “Git Show” command Added option “–remerge-diff”, which makes it possible to show the differences between the overall result of the merger and the actual data reflected in the Commut after processing the “Merge” command, which allows you to visually appreciate the changes Made as a result of conflict resolution during merger. The usual team “Git Show” separates different resolution of conflict conflicts, which makes it difficult to understand the change. For example, in the screenshot below the line “+/-” without an indent shows the last resolution of the conflict associated with renaming in the first SHA1 branch to the OID in the comments, and “+/-” with an indent – the initial resolution of the conflict caused by the appearance in the second branch of the additional argument In the dwim_ref () function.
When using the “–remerge-diff” difference between conflict resolutions are not separated for each parent branch, and there are general differences between a file that have conflicts of merge, and a file in which conflicts are solved.
- increased the flexibility of configuring behavior to reset disk caches by calling the FSYNC () function. Previously available Core.fSyncObjectFiles parameter is divided into two configuration variables core.fsync and core.fsyncmethod providing Ability to apply FSYNC, not only to files with objects (.git / Objects) , but also to other GIT structures, such as links (.git / Refs), Reflog and Pack files.
Through the CORE.FSYNC variable, you can specify a list of internal GIT structures, after the write operation for which FSYNC will additionally be called. The Core.fSyncmethod variable allows you to select a cache reset, for example, you can select FSYNC to apply the system call or specify Writeout-only to apply a postponed record (Pagecache Writeback).