adamtornhill/code-maat

Inaccurate revision count for temporal period >= 2

famkedriessen opened this issue · 3 comments

I ran the following command on testlogs 1 and 2 (in attachment), where 2 has an extra commit involving the file rest/pom.xml compared to 1.

java -jar code-maat-1.0.5-SNAPSHOT-standalone.jar -l logfiles\testnumber.log" -c git2 -a coupling --verbose-results -t 2 -n 1 -m 1 -i 1 -s 100 > changecoupling.csv

Note that I specify a temporal period to be 2 days. (For 1 day everything is correct, for 2+ days I see the same problem). In file 1, there are in this case two logical change sets (11.06+12.06;19.06+20.06), while in file 2 there are three: (11.06+12.06;18.06+19.06;19.06+20.06). I noticed that code-maat counts three revisions for rest/pom.xml in either case, which I think is incorrect behaviour (and which also influences the average-revs).

entity coupled degree average-revs first-entity-revisions second-entity-revisions shared-revisions testfile
graphql/.../ResolverConfig.java rest/pom.xml 80 3 2 3 2 1
graphql/.../ResolverConfig.java rest/pom.xml 80 3 2 3 2 2

Yes, this is tricky but also expected. (see the original thread in #84).

The --temporal-period is implemented using a sliding window. That way, the same commit will be counted multiple times if there are commits on consecutive days.

FYI: I don't use the --temporal-period strategy myself: it becomes too noisy in terms of false positives. Instead I go for logical commit sets based on ticket/issue references.

Hi Adam, thanks for your reaction, makes sense. I do not have issue references to my disposal unfortunately, but I find that the temporal-window option is still useful to discover relevant couplings :)
I will close the issue now!