If you're not a developer, this next post will probably sound like "blah, blah, techity-tech, blah." Anyway, fair warning and all that.
So, I've slowly been getting won over by git as a version control system. I previously had been a fan of SVN, which despite some glaring problems was overall pretty good. git just seemed confusing and the terms they used were wrong. Also, there was too much emphasis on using the command line to do everything. I think in this day and age if you have to use the command line, the experience is broken. The command line is in fashion nowadays, and just like the trendy fixed gear bikes that are popular now, it doesn't make sense to me. Why make it harder? Anyway, that's a rant for another time. The point is, I didn't warm up to git until I got familiar with SmartGit, which is an excellent git client on Windows that makes git make sense.
Now I'm moving some code from one computer to another using GitHub so I can work on it from both computers. One of my coworkers had let me know about a new git client on Windows, and this one is from github itself. That sounds pretty cool. Since I was starting up git fresh on my home laptop, I thought I'd give it a try.
Let's start with the installation and setup. Traditionally git is a bit of a mess to set up. You have to install git, then you have to generate an SSH key using the command line, then you have to do associations with it and your repo while setting up SmartGit. It's a bit of a mess. Installing GitHub for Windows was slow, but very simple and smooth. Once the installer finished, it was easy to set up. I just logged in with my GitHub account and it handled all SSH key BS. That's awesome! Of course I had already generated and uploaded my key to GitHub, otherwise I probably would have had to deal with that.
Once I got into GitHub for Windows, I was a little less impressed. The UI is very different from traditional programs. I can't say I like it a lot, but I'm sure it will grow on me. Kudos, at least, to the GitHub team for stepping outside the Windows UI box. We'll have to see if it grows on me. Because they eschew the top menu bar, some things are harder to find than others. It took me a while to figure out how to branch a repo, for instance. In general the paradigm is different from SmartGit, focusing more on displaying the changesets rather than highlighting the file structure of your project and the files within it that have changed, like SmartGit does.
The two odd decisions that hamstring GitHub for Windows for me are about cloning remote repos and picking a folder for where to clone a repo. On the latter point, you can only set one default directory for all your repos to get cloned to. You can change it before you clone a repo, but it is a bit cumbersome and not intuitive. It'd be great if your file organization already puts all your repos in one place and all your repos are hosted on GitHub. That's not the case for me, though. I am mixing SVN and git repos from different libraries and projects and mixing in design files that aren't stored in git. And I can distribute my projects in different areas, such as putting some in webroots of servers and others in my general projects directory and others still in my shared libraries directory. So, selecting the target directory for a repo when you're in the act of cloning it is something they need to add.
The problem of cloning remote repos is a bit of a deal breaker for me. As far as I can tell after looking at some documentation, there's no way to clone repos hosted outside of GitHub, and furthermore, no means to clone repos you don't have associated with your account from the GitHub client. To clone a GitHub repo that your account isn't associated with, you have to go to GitHub, go to the repo, and click their Clone in Windows button, which opens up the GitHub client and adds the repo. It's a curious functionality choice to make. But what kills it for me is that you can't get remote repos outside of GitHub. Okay, okay, it is GitHub for Windows after all, but at work we have git repos hosted in Assembla. The lack of being able to enter in a git repo URL in the client makes it unusable for me in my work environment.
I'll give it a try at home for a while on my personal projects, but I don't see myself using this client for anything else until they remedy those issues.
Cross-posted on my ActionScript blog.