Open Source Collaboration with Git and GitHub

I just gave a talk at the Society of Software EngineersTech Talk Thursdays about Git and GitHub. The talk was a mashup of Scott Chacon’s various resources on Git along with Michael Hartl’s presentation on contributing to Insoshi with GitHub. I think it went pretty well and it was followed by some good discussion.

The talk is an introduction to Git from the perspective of a student who has used version control before (and hopefully has learned a bit of graph theory). I went over the little history that Git has, why Git rocks, and how helpful and easy it is to use GitHub. Check out the slides: (yes, there’s puppies)

It was definitely a lot of fun. (I almost wish someone was taking notes!) Someone was taking a video, so hopefully it’ll be up soon. Next time I give the talk I want to show how easy it is to convert from svn/cvs as well as create and browse repositories since I got a lot of suprised looks about git init and git instaweb during Q&A.

Permalink · Rating: · Written on: 12-05-08 · No Comments »

GitHub Rebase #6

The sixth edition of my column is live: http://github.com/blog/246-github-rebase-6

I’m slowly improving the parsing process. For the last edition I broke out all of the work the app does into rake tasks, and then the Rails site is just for viewing the data. Basically there’s a few steps:

  1. Download ATOM feeds (This week, 1400. Last week, 1200).
  2. Check that all of the downloads went ok. (Bad gateway errors happen to good people)
  3. Parse the files, making sure that events are unique and users forkers are logged.

Surprisingly I’m relying less and less on my app to get the column together, which is good. Huge kudos to the GitHubbers for creating the Recently Created page for each language. This helps me diversify the column while avoiding a lot of data crunching on my end.

Next week I definitely want to parse the entire month’s worth of events to really see the trends come out. Luckily their atom feed goes back 4000-5000 pages (of 30 events each) or this wouldn’t be able to happen. What this will mean is that I’ll actually have to optimize the download and parsing as much as possible. Stay tuned!

Permalink · Rating: · Written on: 12-01-08 · 1 Comment »

Contributing to Insoshi with Git and GitHub Notes

Part of my series of notes from the Professional Ruby Conference. See them all here.

This is a talk by Michael Hartl who runs Insoshi.

Michael wrote Railspace and was part of Y Combinator and built insoshi out of those experiences. It’s a developer run social network. They got onto GitHub during their beta and it’s really helped them out.

Another huge project on GitHub is Rails. Explaining the basics of Git and collaboration. Pushing to repositories, and most importantly: pulling down changes from cloned copies of the source.

Going over a few features of Insoshi. One such feature is common contacts, which should be as simple as Person.common_contacts_with(@other_person). Contributors submit code constantly that isn’t tested and somewhat messy, so it helps to clean it up. We’re going to go through the process of cleaning it up since there’s various problems from functionality to database vendor problems.

Showing off GitHub and forking a repository. Forking a repo…it’s absolutely the same! They have 2 branches: master (stable) and edge (slightly less stable). Forks can maintain separate branches too. They have a custom script that pulls down changes and creating a separate branch for your own changes.

Now that we have a forked repo and it’s updated. So let’s change the code write a test for our new functionality FIRST. Wrote a failing test and going to fix it in the code. Used the & operator to find the intersect between two arrays: person’s contacts and other person’s contacts.

Showing the git commit and push commands and the diff up on GitHub. The pull request feature on GitHub lets you make the project maintainers aware that you’ve made changes and lets them bring in your work. From there it’s out of your hands, but they will be notified.

Permalink · Rating: · Written on: 11-20-08 · 2 Comments »

GitHub Rebase #2

The second edition of my weekly installment is now hosted at GitHub!

Next week I’m going to release it on late Saturday, or perhaps early Sunday. It’s a bit late this week, but I don’t think anyone will notice.

Permalink · Rating: · Written on: 11-03-08 · No Comments »