ejwa / gitinspector

:bar_chart: The statistical analysis tool for git repositories
GNU General Public License v3.0
2.36k stars 327 forks source link

Show "hotspots" in report #135

Open eddie-dunn opened 7 years ago

eddie-dunn commented 7 years ago

Identifying source files that are often changed, and by many different people, is a great indicator of where the next bug might crop up.

Can you add such hotspot information to the report?

adam-waldenberg commented 7 years ago

Hi @eddie-dunn.

I'll keep it open and think about it. While it does not really help in evaluating an author, it might be useful.

uli-weltersbach commented 7 years ago

Detecting hotspots as @eddie-dunn suggests is really helpful from an enterprise perspective.

A "normal" development flow is usually characterized by several sizable commits, followed by a period of inactivity - the code has been written and does what it's supposed to do. This cycle repeats when e.g. new business requirements demand changes to the code. A bunch of small commits "sprinkled" over a long period is usually buggy code, hotfixed again and again.

Detecting such hotspots "manually" during code reviews is difficult unless you're in the habit of looking at a lot of history, because small changes seen individiually rarely stand out (to me at least).

I don't know Python (JS and C# are my forte), but I would be glad to help if possible.

eddie-dunn commented 7 years ago

I know this tool was initially developed to evaluate students' performance. I forgot to mention that in the issue description, since I tried to keep it succinct and to the point, but as @uli-weltersbach mentioned above, your tool can be immensely helpful in enterprise contexts as well. gitinspector is one of the better code analysis tools I've found, but it can be improved.

In other words, for our use case the code we develop, and the quality of it, is the primary measurement statistic. Stats for how individual team members perform is not that important.

Hotspots are a good indicator that the architecture of the codebase needs an overhaul, and will help with targeted refactoring.

I understand that asking for hotspot detection so that we can use your tool in an enterprise context might indicate scope creep, but if you are open to the idea I would gladly help.

Are you open to the idea? Python is my language of choice, but I have limited spare time on my hands, so I don't want to waste it on something you don't want or need.

adam-waldenberg commented 7 years ago

@uli-weltersbach Yes it might be helpful.

@eddie-dunn As stated before, yes I might be open to the idea. It's fits under the same scope as the already included metrics that can be found in gitinspector which also is for finding files that may contain problems.

Exactly how it would work and what should be included is another question.

ghost commented 5 years ago

👍 on this, I just started reading Your Code As Crime Scene which covers these hotspots in code, the amount of "churn" there is in terms of number of commits for a file plus the number of lines of code in the file can indicate a hotspot.

Very very useful, right now my option is just to use git log and tokei to find the most changed files in git. It would be nice to have a top 10 list.

adam-waldenberg commented 3 years ago

Adding this to the 0.5.1 milestone.