Git maintainer Junio Hamano has released the final version of Git 1.8.1, after an additional release candidate was published over Christmas break. The new version of the distributed version control system focuses, as befits its minor version number increment, on bug fixes for a variety of issues that cropped up in the Git 1.8 release, but it does also include a selection of new features.

Submodule handling has been enhanced with a number of new options. The --name option can be used with git submodule add to add new submodules from a directory which already contains unrelated submodules. Git's submodule synchronisation function, git submodule sync , can now work recursively with the --recursive switch, and the comparison tool git diff submodule can be passed a custom default value through the configuration variable diff.submodule .

Scripts for auto-completion have been added for users of tcsh and zsh. When Git's git checkout is used to check out a branch it tells users how far behind or ahead a branch is relative to the remote branch; this message now advises them how to sync up with that branch, though the message can be disabled using the advice.statusHints configuration variable. A new configuration variable, diff.context lets user adjust how much surrounding code is displayed in patch output; this traditionally defaults to 3. Talking about configuration variables, the git config --get command used for configuration checking now replicates the internal configuration system using a "last one wins" rule for multiple definitions of the same variable rather than raising an error.

Further details on the changes in Git 1.8.1 are available in the release notes in the announcement and on Hamano's blog. Git 1.8.1 is available as tarballs that can be downloaded from the project's Google Code page; alternatively, the source code can be cloned from https://github.com/git/git.git . Git 1.8.1 binaries for Linux, Windows, Mac OS X and Solaris are also available. The software is licensed under the GPLv2.

(djwm)