dtg3 / repostat Goto Github PK
View Code? Open in Web Editor NEWTool for collecting various information about git source code repositories.
Tool for collecting various information about git source code repositories.
Relates to #11.
$ time python gitty.py ../../collected-repos/git-repos/linux.git
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your diff.renameLimit variable to at least 434 and retry the command.
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your diff.renameLimit variable to at least 1414 and retry the command.
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your diff.renameLimit variable to at least 581 and retry the command.
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your diff.renameLimit variable to at least 559 and retry the command.
real 49m27.307s
user 13m5.675s
sys 35m11.321s
Right now, we don't support data analysis of certain commits. Or atleast - we try to analyze them, and they return incorrect information that could skew our results. These appear to only be on merge commits.
For example - feeding Spoon-Knife to repostat gives us the following information for commit bdd3996:
FILES: 0
HUNKS: 0
LINES: 0
However, this commit changed 1 file, 3 hunks, and 26+2 lines.
More examples can be found by running repostat on faker, which has more merge commits, where 57e677f provides the output:
FILES: 0
HUNKS: 0
LINES: 0
Even though this commit changed 8 files, 7 hunks, and 830+1 lines.
Note that this issue is not on all merge commits. See commits e77b223 and b5dad5c. Repostat shows files, lines, and hunks > 0 for these merge commits. However, the files and hunks are off. Expecting output for files to be 2 and 3, respectively, yet repostat outputs 14 and 15.
Make each data field that will be stored a flag that can be set with OR operations to allow for greater configurability. For example, setFields( AUTHOR | COMMITTER | MSG );
would only read and store the author, committer, and commit message from the repository.
Output the information gathered from the repostat traversal to provide data drill down support in an interactive HTML report that render the charts (d3 is an option). It should be generic enough such that it could be customized to present different granularities of statistics as more information becomes available.
Some suggestions for useful charts:
Does anyone have a preferred licence? I'm a fan of the MIT Licence since it's straight forward and easy to understand.
The \n
character from a commit message is replaced with a space so that the row is preserved when viewed in JMP or excel. The same should be applied to a carriage return \r
.
There isn't any freeing going on for the following things:
git_commit_free
.git_tree_free
.git_diff_free
.git_patch_free
.We don't want to be stuck in the same situation as before!
I'm stuck trying to use the git_diff
struct that's returned when we call git_diff_tree_to_tree
. Maybe someone better at C++ can figure it out?
I was testing by calling the git_diff_print
function like so:
git_diff_print(diff, GIT_DIFF_FORMAT_PATCH, NULL, NULL);
Once this works we can convert it to a patch (which is already in there and seems to work ok even though printing segfaults).
Then we can get the following:
git_patch_num_hunks
.git_patch_line_stats
.git_diff_num_deltas
(which already works without segfaults Follow the merge commit info to identify named branches.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.