Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 159

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 162

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 165

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 168

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 171

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 173

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 175

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 197

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 201

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 224

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 225

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 226

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 316

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 316

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 316

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 316
Montreal On Rails, January Edition

Last night I presented git at Montreal On Rails and I think it went pretty well. I might have forgotten a few things I wanted to say, but I got quite enough question about other aspects of git to fill an hour, aspects that I didn’t expect to be able to squeeze in. Although git is a very different beast than subversion, I feel like most people understood what it is all about. We have some very smart people here in Montreal, and it sure does not look like a ghetto. ;)

Now let me remind you of your homework for the week (it leads toward the path to git enlightenment):

  • Listen to Linus Torvalds git talk at google. It really helps understanding the design of git.
  • Install git.
  • If you are currently using svn, see my guide on how to start using git while keeping a central svn repository.
  • Explore parallel universes with branches. Develop a new feature in a branch. Try out a plugin in a branch. Have a branch with rails edge. Do some crazy experimental refactoring in a branch, including renaming files (yes! git will correctly merge).
  • Play with git. Set up local “remote” repository to experience what distributed version control is all about. Try out strange branching scenario just to see how git will handle it.
  • Read the documentation. See if you can find how to: commit only part of file, send your last 3 commit to another branch, change your last commit (there are 2 ways actually).

I got carried away there. Git rocks.

Popularity: 20% [?]

 

6 Responses to Montreal On Rails, January Edition

  1. Great presentation, JF. Thanks :-)
    For those who enjoyed Linus’ video presentation, this one on the Mercurial project might be interesting as well (even if you just plan on using Git):
    http://video.google.com/videoplay?docid=-7724296011317502612

  2. Carl Mercier says:

    You did damn good indeed! I was already convinced but you just reinforced my desire to get rid of SVN asap.

    I think the crowd was really sold when you renamed that file ;-)

  3. jfcouture says:

    @Mat: Interesting talk. I’ve heard good things about mercurial. If for some reason git doesn’t float your boat, it’s another option.

    @Carl: One thing I forgot to mention about renaming files. Move the file and commit and do other changes to that file in another commit. As we saw in gitk, git detects the similarity between the file when there is a move. If however you changed the file a lot in the same commit as you moved it, git might not pick up the rename.

    Thanks for the kind comments!

  4. Derek Mahar says:

    Don’t forget Randal Schwartz’s Git presentation at Google (http://video.google.com/videoplay?docid=1251251453592758541). I found Schwartz’s presentation much more informative and less antagonistic than Torvalds’. For example, I thought it was a bit excessive for Torvalds to call all CVS, Subversion, and Perforce users “ugly and stupid”.

  5. jfcouture says:

    Randal’s talk is good, but I think Linus’ talk is much more entertaining. ;) I think reading a couple tutorial and playing with git helps more than listening to Randal’s. Then you can go back to his talk and complete your understanding of git.

  6. Klaudia says:

    I see you share interesting things here, you can earn some additional cash, your website has huge potential,
    for the monetizing method, just search in google – K2 advices how to monetize a website

Leave a Reply to Derek Mahar Cancel reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>