about me

I'm a 37'ish year old web application developer from South Portland, Maine. I love meeting fellow techies, drop me a line if you want to talk shop.

Categories

My Poor Use of Git Commit Messages

Posted on 08/28/2008 at 03:51 AM

I began using git to manage the source code for my current project, a Rails app which I should hopefully be launching shortly. Yahoo! Now, I hadn’t actually been using source control for very long before I began, and wasn’t able to focus on best practices. With a wife, 2 kids and 2 jobs, I was lucky to get the coding of the apps themselves under control. That said, its funny now to look back at all my commit messages for this project.

So it wasn’t until recently I was able to focus my commits to specific features, changes to the code-base that stood on their own. More often, I found myself working “everywhere” and on “everything” all at once. I wonder how many other people start off this way.

Well, 127 commits behind me, I took a moment to browse back through the messages of my project. Its amazing to see how useless they are, time to get better at it I guess.

  • initial rails import
  • first rails 2.1 import
  • adding in the input_css plugin
  • configuring for a git deploy
  • some deploy edits
  • removing fast sessions
  • removing vendor/rails
  • adding back in rails 2.1RC
  • fixed categorizable
  • testing
  • in progress
  • tagging works as best it can now until better searching is implemented
  • before trying permalink_fu
  • removing tm project file
  • annotating models
  • ajaxified some pagination and refactored page_titles and will_paginate helpers
  • retooling index views on my resources
  • just before changing categories to be acts_as_list
  • massive changes to how we store categories, now a list and not a tree
  • simplifying event searches
  • starting to add thumbnail support to listings
  • most image thumbs appear as expected
  • cached category list to db, fixes to admin and public pages in regards to ajaxification of pagination
  • refactoring my tabs renderer
  • working on what can be deleted and its consequences
  • removing deleted_at from affiliates
  • adding in a fixtures dump task
  • renaming the rake task
  • refactored affiliates and listings
  • altering the display of list view for events and such
  • before meeting
  • adding in the textmate footnotes plugin
  • bug fix in lib/mappable.rb
  • new tabs_renderer, accepts options now on the main div
  • removing rails 2.1 RC
  • last minute adds
  • adding rails 2.1 offical
  • adding in ultrashinx, about to take out rails 2.1 final and put in edge to get rid of depreciation warnings
  • removed rails 2.1
  • rails edge for 2.1+ frozen
  • updated gitignore
  • gonna play with ez-where
  • removing ultrasphinx, adding ez_where
  • removing aatos
  • LOTTA STUFF - EEEEEEK
  • nuttin
  • before trying a fulltext solution
  • mid stride with ez_where and tsearch
  • about to go back to mysql!!!! >.<
  • before revamping categories again!
  • caring for old deletions
  • categories now work via categorizations!!!
  • annotated my models
  • spacial search, pagination, and conditional finds working well
  • now using ez::where
  • mostly removed old search
  • getting there!!!
  • closer!!!!
  • well i thought i was getting somewhere
  • many to many with users—affiliates
  • slowly getting there .. hope i am ready by tuesday
  • mid stride ... as usual
  • lambda in perm check
  • quick fix?
  • disabling perm checks
  • broken as all hell
  • added new jrails
  • on my way
  • before removing acts_as_paranoid
  • replaced acts_as_paranoid
  • added scope builder, removing the admin namespace slowly
  • temp commit ... nothing special
  • updating model annotations
  • changing the deploy file
  • test
  • large overhaul to partials etc
  • securing the approvals controller
  • correcting a find more by affiliate/user link issue
  • done refactoring partials, except maybe for locations and attachments
  • adding an indexing rake task for deployment
  • small edits
  • fixing listings views with affiliates
  • tag ‘listings’ are not more specific
  • highlighting for section and category navigation
  • nothing
  • adding css to space out forms
  • 1st round of changes smile
  • no really, 1st round ..... >.<
  • removing query trace plugin
  • 20 of 50 changes
  • 20 more taken care of smile
  • removing most dumb files
  • adding full address abilities to user affiliate job even classified
  • same as before
  • adding in addresses
  • working with addresses
  • removing sti on addresses
  • removing billing and shipping formats
  • yo mamma
  • added status notifications to listings#show too
  • lots of changes, biggest was switching attachment_fu to only use core_image for resizing
  • fix the comments view, forgot a div end
  • removing attachement_fu’s test db
  • tweaking affiliate and user show pages
  • jobs are now ‘available’ or ‘wanted’
  • jobs are now fully defined as wanted or available
  • nothing much
  • altering user perms
  • removing some files
  • added in my asset manager plugin (gulp)
  • removing jrails
  • removing input css
  • annotating models
  • moving things
  • adding new date and time formats, a few other initializers
  • re-arranging helpers for file attachments
  • adding thickbox dependencies for a few view helpers
  • attachment validations still arent working >.< WTF!
  • adding sensible page titles
  • some view edits for how minical icons display in the events section
  • small perm check on users display
  • basic history of listings
  • lots of permissions changes
  • commit before i play with superfish
  • added superfish
  • adding new user tab info
  • bout to get serious!!! smile
  • removing vendor/query_analyzer
  • updating some tabs helpers
  • does this work?
  • fixed the user_tab parial
  • added the ability for a user to change their default address
  • corrected a bug in making an address default for a user

8 Comments

Comment #1 by Kevin Mahaffey  on  08/28  at  11:29 PM

I often find myself having the same problem.  After a long coding + testing (or testing + coding depending on your bent), meaningful commit messages are always tough.

If you use a ticket tracking system, it might be good to add a pre-commit hook to require a reference to an active ticket (We haven’t done this yet, but I’m considering it...)

Comment #2 by CodeOfficer  on  08/29  at  12:20 AM

Hey Kevin! Neat idea on integrating the ticket tracker. ciaran from ##textmate on irc also suggested making better use of ‘git commit --amend’ for those silly “ARRRRGGGGG” follow up commits, which will simply combine the next commit with your last one.

Comment #3 by Jason Leveille  on  09/18  at  10:08 AM

Hey, Russ.  This post hits close to home, and I think in general it is a symptom (not a bad one necessarily) of those of us who are the only ones committing to a project.  I have multiple projects that only I touch and I don’t always commit based on feature implementation or bug fix ... but I know I should, and I know I need to be better as well.

On another note, I was born in Portland and raised in West Enfield, Maine (north of Bangor).  Went to college at Thomas College in Waterville, and worked for 2 years in Poland Spring, Maine.  I always love coming across the work of other Mainers.  Looks like you’re doing some great stuff!!

Comment #4 by CodeOfficer  on  09/19  at  12:44 AM

Thanks Jason! I moved to portland from the Camden area to be around more tech related people. I’ve met a ton of nice folk via our local Ruby Users Group. Hit me up if you’re ever in the area, we’ll trade stories. I went to Colby College not far away from Thomas!

Comment #5 by Jason Leveille  on  09/19  at  08:21 AM

Colby ... we used to bet our asses handed to us by Colby in Baseball and Soccer on a somewhat regular basis!

Comment #6 by Dan  on  10/22  at  08:49 PM

Half of mine are something vague like “cleanup.”

Comment #7 by Garrett  on  11/11  at  07:45 PM

LOL. I read this and laughed because this is EXACTLY what my commit log messages look like on my current solo project. Glad to see I’m not the only one out there that does this. rasberry I was actually searching google for a way to go back through and join old commits together and recomment them so I could get rid of all this. I think I may be able to accomplish this with git rebase—still investigating. rasberry

Enjoy a sample of some of my recent commit messages smile Ahaha, so bad:

32c6dd4 The money!
df9906a Trim
b1b3fe2 5
cb41bdd ,
9fef413 CONVERT
66ec32c Signed
fc101c8 Test
f2bab34 Test
748c565 Test
33da1f6 Test
31600cc Test
c814695 Test
a3d7c6d Testing sqk
ef6fce6 New SQL
50e5800 clear size
b2cf217 typoe
074380f typo
7da9f97 test
29bc54a got rid of P
905bd76 fixing
bfc9ddf fixing
961d4fb style test
9b96c24 test
2a91b56 test
21500dd >=
ae6e888 unfixed
eef0008 -1
b87037f Fixing
bb5bec1 TEST
8446be6 match
5e772a9 Changed
ca4ee6e Change to next page
e56bdc0 changed to 6
82e82a5 +1
af859cd Floor
5e7ac25 fixed bug
b7fdfe5 Pages
3390ede Fixed search query
12c7be4 Fixed ULs
13d6ee4 list tyle
46e4ef2 LI~!

I’m sure these all made sense at the time :D

Comment #8 by CodeOfficer  on  11/11  at  07:47 PM

@Garrett ... awesome, thanks for the validation smile

Leave a comment?

Please use Pastie or Gist if you need to write code in your comments.

Name:

Email:

Location:

URL:

Remember my personal information

Notify me of follow-up comments?

Please enter the word you see in the image below:


RailsConf 2008 Often times I will release code for free or go that extra distance to help others online. If my skills were useful to you, please consider a small donation. Thank you very much.

recommend me!

Search

You Can Find Me

@ github.com
@ twitter.com
@ calendaraboutnothing

My Wishlists

@ Amazon.com

My Other Sites

Foundation's Edge, RJones Family, We're Not.com (only for staging), Ailee Jones (same as rjones for now)

Friends of Mine

Aaron, Barnaby, Brian, Chris, Dirk, Frank, Four, Justin, Matt, Mike, Monty, Paul, Sean, Travis

IRC Hangouts

I can usually be found lounging on irc.freenode.net while I work, on the following channels: #fauna, #github, #hello-heroku, #jquery, #passenger, #ruby, #rubyonrails, #slicehost, #sproutcore, #textmate, #werenot.