/sharptemporalgitalyzer

CSharp Temporal Method Analyzer for git repositories

Primary LanguageC#

CSharp Temporal Method Analyzer

for git repositories

Comes with a "build it yourself" policy. It uses that NuGet thing to restore packages. Specify the path to git in the app.config, thanks.

Usage sharp temporal gitalyzer:

stgalyzer <path to your local git file repo>

Spits out a .csv file under .\analysis for each commit containing all csharp methods at that point in the working copy in the following format:

FullMethodName\tMethodBodyLength\tMethodBodyLineCount\tMethodBodyHash\tFilePath\tCommitHash\tCommitter\tCommitDate

Right now, it's hard-coded to do this for the 'master' branch.

Usage of change over time:

spitcot <path to the .\analysis folder>

Spits out a .csv file under . containing the number of methods added, removed, modified on a date by date basis. The format used is:

CommitUtcDate\tAdded\tModified\tRemoved

Use a spreadsheet to graph the add/modify/remove ratio over time.

What can I do with these .csv files ?

Given that I don't know what analysis you are interested in, it requires you to write another piece of code, one that reads and analyzes the .csv files. Things you could do:

  • read and compare each commit's .csv with the previous one to detect the methods that were added, removed, modified (spitcot).
  • rank methods/types/projects/areas by their size over time.
  • produce another intermediate format that suits your needs.
  • you might pick up some ideas here.

Disclaimer

Unstable! Only do this on a throw-away copy of your repo. If shit hits the fan, you're on your own. I'm not liable and have a good lawyer ;-) This is a sample, not a project/product. You're supposed to change the code to make it do what you want. Duh!!