Nov

27

Posted by : Billy | On : November 27, 2011

I’m trying to get back on the git train. I worked with it on a project a couple of years ago, and really liked it, but since then, I really haven’t strayed from Subversion. Truth is, svn is easy: there are more tools, and you don’t have to deal with SSH keys and whatnot. However, on my current project, I really run the technology, so I really wanted to do thing the “right way”.

Our project management solution is Assembla. We were on Unfuddle, which is pretty good, but Assembla offers more. (I flirted with using a private GitHub repo) Some of the advantages Assembla offers:

  • Single project workspace, multiple repos. I like being able to tie checkins to tickets, but don’t want a single set of tickets: other solutions are one-to-one or many-to-many with their tickets projects and repos.
  • Support for post-commit hooks
  • Integrated chat (not really useful, but makes impromptu chats without requiring folks to run IM clients)
  • Agile planning tools: This was the thing that no one else seemed to do. It features burn down charts, a Kanban card wall, virtual stand-up meetings, per sprint hour summaries, and more.

On agile: I’m the only developer – does agile make sense? Absolutely!! I frequently have to drop things at a split moment’s notice and work on something else: it’s imperative I inject tasks and still keep sight of the overall progress. I could really go into this, but that’s for another blog post.

So I set up my git repo in Assemba, committed locally, and was ready to push. (This isn’t a git tutorial … we’ll get to the point here in a minute) However, the connection failed when doing the following:

git remote add origin git@git.assembla.com:myrepo.git
git push origin master

You want to make sure you properly set up your SSH keys:

  • When setting up your SSH public key in Assembla, it’s easiest to upload (https://www.assembla.com/user/edit/edit_git_settings) your pub file (for example, id_rsa.pub). If you’re on a Mac, you’ll either have to enable seeing hidden folders (since it’s in ~/.ssh), or copy it someplace you can easily get to from browser:
    cp ~/.ssh/id_rsa.pub ~/Desktop/id_rsa.pub
  • Make sure you have git configured with the email address that you use to login to Assembla:
    git config --global user.email myassemblaemailaddress@example.com
  • This was the one I still had to do to make it work .. configure your SSH hosts by editing ~/.ssh/config with the following: (if there’s other entries, just add to bottom of file)
    Host git.assembla.com
    IdentityFile ~/.ssh/id_rsa
    GSSAPIAuthentication no
    PubkeyAuthentication yes
    PasswordAuthentication no

That did the trick. I realize I left much about git out here (for example, you may not want to globally set your email address) but I just wanted to show what worked for me.