Eric Hodel (drbrain) wrote,
Eric Hodel

Code Metrics

One of the great things about having source control is that you can perform analysis on the code you've checked in over time. This weekend I rewrote the commit email script to categorize the line changes, so now I get output like this in the commit emails:

Total Changed:	+ 71	- 80
Code Changed:	+ 16	- 65
Test Changed:	+ 55	- 15

If you had just the Total Changed line, you'd think that this commit wasn't very special. With the categorization, you can see that the commit had a large boost in the quality of the code, replacing a large chunk of code with fewer lines and adding many (probably missing) lines of test.

I then wrote a second script using the changes to the commit email so I could collect statistics on the whole of a commiter's work:

Author: eric
        Change: Code    8022    22238   -14216
        Change: Config  13      498     -485
        Change: Other   93415   125369  -31954
        Change: Test    1668    6666    -4998
        Change: Total   104444  156387  -51943
        Change: WWW     323     613     -290

The columns are added - removed, added, removed. (I have a huge number of Other because I've been adding all the machine configuration files, major cheating!) Comparing just added lines, I'm 3:1 code:test, comparing 'live' lines, I'm 5:1.

My next step will be to turn this into a graph so that its easier to visualize how the code has changed over time.

  • (no subject)

    I dreamed I was in a grocery store with my mom reading Seattle Weekly from sometime late at night until 11AM. The Seattle Weekly had an article about…

  • Free Microwave! (and stuff)

    I have a convection oven microwave (this means you could bake a cake in a metal pan in it) I'd like to get rid of. If you or anyone you know would…

  • Tools!

    Today I used several of my tools. My new Collector Vehicle plate arrived, so I retired the 948-MPC plates to my closet and attached the new plate.…

  • Post a new comment


    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.