Git gets more friendly, introduces Code of Conduct and feature macros

Git gets more friendly, introduces Code of Conduct and feature macros

Version 2.24 of popular version control system Git is now available, improving the project’s graph handling, and configuration management amongst other things, and making it more welcoming to new contributors along the way.

To help dev’s improve their workflow, the Git team revised the command line’s completion capabilities and introduced the –end-of-options notation to the command line parser. The latter lets the tool know where the actual options end, which can help when handling commands that use — as a delimiter between revs and pathspec. 

The team went on to clean-up the code a bit, leading to a safer xmalloc(), hopefully better performing git log -L, and better initialisation code. It also made the commit graphs introduced in v2.9 the standard, and fitted them with an additional configuration value which is meant to automatically update the graph with new commits. commit-graph sub-commands write and verify meanwhile now know the –[no-]progress option.

Another helpful addition are feature macros which are compiled by Git developers. Those configuration settings start with feature. and modify the defaults of other config settings. They are meant to assist users in getting behaviours configured that need more than the change of a single value.

If users for example enable feature.experimental, config options new to Git will be activated without them having to search and opt into every one of them. The second group configuration available right now is feature.manyFiles, which enables options meant to optimise the performance in repos made up of large number of files. 

After some discussion over the years, Git now also adopted a code of conduct. The project decided on the version also used by Git for Windows, the Contributor Covenant CoC, for its balance between “illustrating expectations and avoiding a laundry list of behaviors“. According to patch author Jeff King “the behavior on the mailing list has been good enough that nobody felt the need to push one forward” up until now. 

However, with the project looking into ways of extending their community, getting one “may make some people more comfortable with joining”. It also “puts everybody on the same page with respect to expectations” which might avoid poor behaviour in the first place and help handling it, should issues arise.

A full list of updates can be found in the announcement email.