There are only two hard things in Computer Science: cache invalidation and naming things.
— Phil Carlton
I find that I spend an awful lot of time naming things. More than that, it’s a distraction. I also spend a lot of time organizing directories, and a lot of time trying to recall where I’ve put things.
GitHub has made it a lot easier for me to find code online. In fact, it’s so easy that sometimes I just download another copy of a repository rather than search my home directory for one.
As of yesterday, though, the madness is over, because I decided to replicate github’s organization on my own computer. Here are the first two levels of my new, and currently modest, ~/github directory:
As I get more repos downloaded, I think my new organization style will only make more sense. And if I also need a github repo somewhere else, I can symlink it. Also, ~/src is symlinked to ~/github/benatkin.
The idea came when I realized I didn’t have all of my GitHub repos in one place. As you can tell by the tree, I still don’t. Also, I’m putting stuff in my GitHub directory that I may add to GitHub later. If something stays there longer than a week and I don’t put it on GitHub, though, I’ll move it to the archive.
This new directory structure also has the nice side effect that I won’t need to delete repositories just because I need stuff to be easier to find. It shouldn’t take long for the number at the end of the tree output to go over 100, and in a while, the number could be in the thousands. I’ll think of it as a partial mirror.
You should write a bash script to clone a repo into the proper dir.
$ gclone benatkin/weaky
Great idea!
good idea … thanks for sharing.
[…] got this idea from a comment on my earlier post, Organizing github repos, by KevBurnsJr, where he suggested making a bash script […]
[…] added a new feature to grem: if you’re somewhere in your ~/github directory, you can simply type “grem” and the program will use Launchy to open an appropriate […]
This is crystal clear. Thanks for tknaig the time!