This is awesome, and github is not.

http://sethrobertson.github.io/GitFixUm/fixup.html

 

There should be more fix-it-yourself tools like this.

Although if nothing else, it speaks to how overly (and seemingly unnecessarily) complicated git is.

 

Did I rant about this facet of github? I finally hit upon the single most poignant problem with github. This is really a git problem, but the problem is forced on you more strongly with github.

By being a distributed repository, there’s bits and copies of it all over the place, and the defining bit of information that is missing is Which One Is Important.

You can figure out that this fork came from that repo and that repo came from that fork, but that doesn’t mean the most recent fork is the correct one.

One I make a repo somewhere it’s stuck there forever, because if I try and move it, by forking and using the new one… now I have two and there’s no obvious way that I can tell to mark one repository as being the “right” one. Maybe I forked something and made some changes, but the whole thing was a bad idea and I just want to use the original. But I go away and come back a month later and I have no idea which is the one I should do builds off of.

With a central repository, there is really no question where you go to do a build.

You can kind solve the problem a little with git by making a bare repository and just having one, and then it’s a little more obvious that THAT’S the one. The bare-ness of it, is a flag saying that this one is more important than all the others, this is the one where I put the live stuff.

But github doesn’t have that. Everything is a repo exactly like every other repo, forked or not.

They just need a flag saying “important” and you can’t flag more than one that way. Something like that.

 

 

2 Responses to “This is awesome, and github is not.”

  1. Ummm … that’s kind of exactly the point of a DVCS? There is no concept of upstream or downstream except by the consensus of the people participating.

    I suspect most of the people using git don’t even care about the distributed part; it just happens to be the most poplar VCS in open source right now so they use it.

  2. admin says:

    The point is to be distributed, but at the risk of making it unusable it seems to me there should a better way… There is no recorded sense of what the concensus is except in the mind of the last committer. That doesn’t really help anybody else.
    What I’m getting at is that there seems to be a layer of metadata explaining what’s going on with all the disorganization.
    Git was invented to solve linus’s problem but as you say github solves a problem a lot of other people don’t have, and by using it they’re just making life harder for everybody involved. I think there’s probably a way to fix this in github but at the moment it is missing.
    That and making it really hard to keep your fork in sync with the parent you forked it from if you want to.

Leave a Reply