Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
CSharp Temporal Method Analyzer for git repositories
C#
Tree: 9696209926

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
.nuget
ChangeOverTime
SharpTemporalGitalyzer
.gitignore
README.md
SharpTemporalGitalyzer.sln

README.md

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!!

Something went wrong with that request. Please try again.