As we don't really need it, storing this was just eating up unnecessary
memory. On very big repositories (with many commits) removing it makes a
big difference.
In practice, this means that the tables are initially collapsed and hide
all authors with a workload below one percent. The user can expand a
table in order to show all authors found during statistical analysis.
This can now be done by supplying one (or both) of the "--since" and
"--until" parameters to the gitinspector executable. These parameters
work in the same manner as they do in git and accept the same values.
Statistics will only be generated from data between the given interval.
The call to git log included "'" characters to "stringify" input to the
git command. On unix systems, this functions the same way as the
citation (") character. On Windows however, it does not.
This bug occurred because whenever the "git blame" command detects
international character it outputs a string escaped character string in
the form "\ddd\ddd". Gitinspector didn't properly handle this. Python
offers a way to decode this using the decode function together with the
"string_escape" encoding.
The Outputable class is now the base class of all the classes that want to
output formatted text. This is more object oriented and cleaner solution
compared to the previous implementation.
Forgot to specify the '*' operator when passing the parameters to the
callback functions; something which resulted in a dictionary being sent
into the callback functions. Obviously, this is not what we want.
Changed from using the deprecated functions in the os module to using the
new ones in the subprocess module. All string reading now also uses the
string.decode() function, which seems to be recommended practice whenever
the input is a little "iffy".
The responsibilities module shows a maximum of 10 files, per author, that each
author is responsible for. This fucntionality can be enabled by supplying -r
or --responsibilities to gitinspector. The parameter is also enabled if
--tda367 is specified.
The default setting configures printed file names to fit to a 80 character
wide terminal; something that destroys the ability to do proper filtering of
long file names in gitinspector.
Filtering can be specified using an arbitrary number of -x (or --exclude)
parameters. The filtering works in a similar fashion to an inverted grep,
meaning that matched file names will be excluded from the generated
statistics.
To accommodate this modification, the changing of working directory (when
a repository is specified) has been moved from the system module to the
main gitinspector module. This enables us to change directory in one go
when gitinspector starts, thus removing the need for the previous system
module.