Home - eggnet/ownership GitHub Wiki

This ownership project is a component of the Eggnet Call Graph Analyzer which enables the analyzer to get source code ownership information in terms of which contributor owns which character number ranges on a per file basis.

Details

This project has the main purpose of iterating over all the commits in a git repository and dumping the relevant data to a PostgreSQL database. For each commit, the data we are interested in is who modified a file, the commit they modified it on and what character ranges did they effect. This will be run every time the Callgraph Analyzer is started, and will update (if needed) the missing commits changes into the Ownership table. It works from earliest commit to latest, updating the changed character ranges as it goes.

The code of this project is added to the Callgraph analyzer project as a referenced library and can possibly be recycled for further use in other projects that need similar information.

Limitations

This project currently only assigns users to character ranges (as this is the lowest level), but this allows us the freedom to build on this and construct larger owned constructs(Methods, classes, files). If you need line number ranges as opposed to character ranges, modification of this project is required or perhaps a different project must be used.