Weird behavior

Around last May1, I started to notice a weird behavior: some people like to clone a repository but without adding any commits on GitHub, Google Code, or any other source code hosting provider I believe. A few people even fork my dotfiles, that really loses me.

For example in the following screenshot, it shows only one of 18 clones has made some changes:

Those 17 clones have never been done with anything.

Rationale?

I have long try to understand or to explain to myself why they do that. Whenever I see cloned repositories under some people’s account, which have no commits, I ask myself

Why?

What’s the point of cloning a repository under one’s account and making no commits to it? Why not just clone the original repository to local even you do plan to make some commits locally without pushing to the public accessible repository.

Maybe they might commit or contribute some changes later?

That still makes no sense at all. You can always push to another repository later on, you do not need to clone to your account first.

If you are one of this type of cloner or you know their reasons, please leave a comment, I’d like to understand.

My cloning

Whenever I want to contribute, I

  • Clone the original repository to local, then work on it.
  • Commit and commit.
  • go to hosting provider, fork or clone—whatever they call it—the original repository under my account
  • Edit local repository configuration, change default push path to the one under my account
  • Push changes.
  • create a pull request.
  • once pulled, I delete the forked or cloned repository unless I am still going to make more contributions.

The reason I don’t fork or clone before working on it, that’s because sometimes you realize that your idea may not be good enough once you seriously read the source code in order to make changes. You may drop your idea. I make sure I have changes committed before I fork or clone. Only do that when I am sure I have something to contribute or to push.

I don’t keep repository whose commit history is part of original. I really don’t understand why so many people keep a clone, an super outdated clone under their account. Well, not just one, I have seen a few people own accounts which contain dozens of outdated clones and that’s all those accounts have: full of outdated clones.

Use star or watch

One reason I can remotely guess is, they use fork or clone to track repository. If so, then please:

  • If you like a repository, star it, don’t fork or clone it.
  • If you are interested in changes of a repository, just watch it!

You won’t lose them, for example, on GitHub, you have a special Stars page lists all repositories you have stared. Similar list can also be found on your Google Code profile page.

Once I have tried to search a repository on GitHub via search engine, there are some real clones, but when mixed with those without additional commits, it’s really hard to see which it is original or good forks. You need to understand, sometimes forks can get even higher rankings in search results if more people use the forked ones.

And there are also people fork or clone by creating a new repositories, not by those fork or clone buttons. This adds another dimension of troubling. Things sometimes can get little messy.

From my perspective and habit of keeping my online account in clean state as much as possible, those people stuff trash or useless repositories in their account. I am by no means saying those repositories literally are trash, just it’s useless since they are outdated. It’s like hoarding online, those forkers or cloners are repository hoarders in my opinion, that’d be how I describe them as I don’t know why they do it.

Please do understand that I am not trying to criticize those people’s behaviors but simply let them know there is no need to do so for themselves or for others. They is no absolutely right way or wrong way about how you use, but there does have better way to do things if criteria meet.

[1]I first noticed at 2012-05-23T02:38:45Z.