UPDATED 15:16 EDT / JULY 11 2013

NEWS

Let’s Talk About Git’s Blemishes

We all are great admirers of Git; it’s a powerful, useful, and extremely popular platform kept in the toolbox of many-a-developer. We keep reading good stuff and adulation pieces about Git too. Here we are going to talk about the flip side, the shortcomings and blemishes of Git, as discussed in an essay by Peter Lundgren who is a self-confessed Git admirer.

Now this is going to be interesting; let’s hop to the key points!

Complexity

Git has a complex information model, comprised of directed acyclic graphs, commits, trees, blobs, branches, tags, and remotes. Git has a staging area, a stash, and a reflog, and a long list of 145 commands.

If you are a professional software developer, it is certainly a boon as it gives you so much to experiment with and a plethora of powerful features. But amateur developers might look elsewhere.

Access Control

As there is not much of access control on Git, the ability to restrict access to Git repositories is severely limited. Taking about Read Access, you can either clone the entire repository or none of it, and need to set read permissions per repository. Write access is not that limited as third party tools can add write access control to Git.

Obliterate

Obliterate is a really nice feature offered by Git as it helps you completely remove the confidential and critical files that may have accidentally committed to a repository. But once it’s made public, Git makes cryptographic guarantees that ensure that if someone tries to rewrite history to obliterate a file, every clone of that repository will notice at the next fetch. As there is a locally attached history in every clone, you may have lot to worry about all the working copies in addition to the central repository.

File Lock

Okay, Git doesn’t allow locking files, and doesn’t support as well. Though it is not required most of the times, sometimes locks are needed. For example, when a developer needs to take turns working on files. Locking a file can be the right solution.

No Revision Numbers

Git doesn’t have revision numbers, and has 40 character hashes instead. So, if you are used to appending a revision number to a build and having a meaningful sort, you may need to change your ways.

Nevertheless, these things may not affect and matter to most developers. For an elaborate word on Git’s shortcomings, you may read Peter Lundgren’s article here.


Since you’re here …

… We’d like to tell you about our mission and how you can help us fulfill it. SiliconANGLE Media Inc.’s business model is based on the intrinsic value of the content, not advertising. Unlike many online publications, we don’t have a paywall or run banner advertising, because we want to keep our journalism open, without influence or the need to chase traffic.The journalism, reporting and commentary on SiliconANGLE — along with live, unscripted video from our Silicon Valley studio and globe-trotting video teams at theCUBE — take a lot of hard work, time and money. Keeping the quality high requires the support of sponsors who are aligned with our vision of ad-free journalism content.

If you like the reporting, video interviews and other ad-free content here, please take a moment to check out a sample of the video content supported by our sponsors, tweet your support, and keep coming back to SiliconANGLE.