|Git Improves Usability
|Written by Alex Denham
|Tuesday, 18 December 2018
Git 2.20 has been released with improvements to cloning, fetching, and grepping, all designed to improve usability and performance.
The improvements to cloning mean that if you run "git clone" against a project where a file might be lost, git should now warn you of the forthcoming problem. For example, if the project contains two files with path names that are the same apart from case changes, and you run the clone on a case insensitive file system, one of the files would be lost because the underlying file system couldn't hold both files at the same time. In the past, this has resulted in a lost file, but Git now attempts to detect cases like this and warn you.
Fetch is another area to have been improved. In earlier releases, the rules used by "git push" and "git fetch" to work out whether a ref could or could not be updated were inconsistent. In particular, you could use fetch to update existing tags even though tags are supposed to be fixed anchoring points. In the new version, "git fetch" will forbid updates to existing tags unless you use the "--force" option.
Git grep has also been worked on. In earlier versions, git grep recurses to the whole tree, which is different behavior to grep outside Git. You can now choose to use the --recursive option, so that "git grep --no-recursive" is the same as setting the max-depth of recursion to 0.
Another usability improvement is when commit-graph files are being generated. Until now there was no indication of how far the generation had got and how much time was left. You now get a progress bar, as you now do with the git status command. Both additions are designed to give more info to users with large repositories.
Performance is another area to have received attention, with a number of modules being rewritten in C for the better performance it provides. In this release, git submodule update, git rebase and git rebase -i have all been rewritten in C.
Interactive rebase has also been improved so you can use a break operation in a to-do list. You can insert the command into the list, and when it is reached control is passed back to you.
Another change to rebase is the addition of documentation to show how to use the scripted version as an escape hatch in the recently merged "rebase in C".
There are a number of other changes to improve the flexibility of Git configuration and to fix bugs. More details are available on the Git website.
or email your comment to: email@example.com
|Last Updated ( Wednesday, 19 December 2018 )