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.

gitlogo

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.

.

gitlogo

More Information

Git Official Site 

Related Articles

Git Adds Protocol Version 2 Support

Git 2.17 Clarifies Moved Code

Git 2.5 Released 

Visual Studio To Get Git

Git Support for Google Code Project Hosting

 Windows Source Now In A GIT Repository

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Extend NGINX With The New JavaScript Module
28/10/2024

Inject middleware functionality into NGINX with the expressive power of Javascript. NGINX JavaScript or NJS for short is a dynamic module under which you can use scripting for hooking into the NGINX e [ ... ]



Ursina - A Game Engine Powered by Python
08/11/2024

Ursina is a new open source game engine in which you can code any type of game in Python, be it 2-D, 3-D, an application, a visualization, you name it.


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Wednesday, 19 December 2018 )