ejwa / gitinspector

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

Co-authorship not supported #209

Closed raoulkent closed 4 years ago

raoulkent commented 4 years ago

Problem statement

For courses where students are pair programming, this may not be reflected by the commits. As full authorship will go to the author of the commit.

Proposed solution

Co-authorship is supported on Github, and would do well to be integrated into gitinspector. Supporting this feature could enhance the accuracy of student participation through supporting cooperative programming instead of dissuading cooperation. Analyzing commit messages and matching Co-authored-by: with authors could make for fairer grading.

adam-waldenberg commented 4 years ago

Discussed earlier. The Co-authored-by feature on GitHub is garbage and does not allow you track the history properly. I have concluded it's not possible to implement. Because commands such as git blame (and other commands) etc are not aware of this feature. If we just parse it on the gitinspector side the analysis will not be correct.

With that said, If you can implement it with all the analysis features of git intact - pull requests are welcome. I doubt it's possible though.

The proper solution here is to commit with a "co-author" (combine the users into one commit author). It's the only way to guarantee that git will actually track the authors and rows correctly.

With that said, maybe it could be supported with a flag and a warning - but it definetly can't be enabled by default, because the results would be unreliable.

raoulkent commented 4 years ago

I see what you mean.

The proper solution here is to commit with a "co-author" (combine the users into one commit author). It's the only way to guarantee that git will actually track the authors and rows correctly. What do you mean here?

Signing it with a custom author that would represent the multiple authors? I do not know of anything beyond git commit --author=<author>, is this what you mean (custom author on specific commits)?