Prolific Git developer makes ‘friendly’ fork
Mexican developer and open source advocate Felipe Contreras went public today with a Git-fc, which he’s billing as a ‘friendly’ fork of Git.
Just so we’re all clear, Contreras defines his fork this way because, “it won’t deviate from the mainline, it is more like a branch in Git terms". He added that this new project will "move forward close to Git’s mainline, and it could be merged at any point in time, if the maintainer wished to do so.git-fc doesn’t include experimental code, or half-assed features, so you can expect the same level of stability as Git’s mainline.”
The backstory to this fork is a little less amiable though. Although he was one of the top contributors to Git in terms of patches last year, Contreras appears to be feeling a little put out by a few things. Primarily, the fact that patches he’s written haven’t been applied, as well as a few other factors that he won’t name, but cryptically attributes to “the culture of the core developers” on the site.
Over on Reddit, there are snatches of detail. Although Contreras denies that any bullying occurred in the Git playground, he does appear to criticise its ‘monoculture’, as well as its user interface. Although he doesn’t outright explain the rationale behind the fork, it’s clear that some sort of cultural clash has gone down.
As one commentator puts it, “I guess all this has an important lesson about social dynamics in open source projects in it (either about bullies or butt-hurt contributors).”
So what’s under the bonnet of this solo effort? Well, in a nutshell, Git-fc doesn’t radically deviate from its parent. He’s refrained from removing any of Git’s original features, or adding any backwards incompatible changes, making it simple for users to migrate across from Git should they so desire. The difference comes in a series of tweaks that, whilst not earth shattering, should help make life easier for the avid Git user.
One key difference is the addition of default aliases, allowing users to make shortcuts for their go-to operations. Git allows users to configure these manually, but otherwise it can be difficult for users. At present Git-fc incorporates four aliases (listed below), but there’s the potential that more will be added down the line.
co = checkout ci = commit rb = rebase st = status
There’s also a sprinkling of other add-ons, including default streamlined remote helpers, which Contreras explains should make things easier for distribution, and an ‘official staging area’. Finally, there’s partial (aka incomplete) optional support support for Ruby - allowing Ruby programs to take full advantage of Git without any need of forks, or I/O communication.
It’s early days for Git-fc, and it’s hard to say at this point how many users will actually make the transition across from Git on the basis of these changes. Perhaps what this project best demonstrates is that - much like real life - big, crowd driven projects simply aren’t a fit for everyone. And when the going gets tough, sometimes the most constructive thing response is to carve out your own niche.
Image by Mike Dot Mike