While they are considered, they are not yet being merged. Statistics
are only calculated for the last repository passed.
This is being done in preparation of completing issue #24.
This class takes the initialization variable "global_only" which
will be set in the future whenever multiple repositories are
specified (See issue #24).
This will make sure that the git configuration is only read from the
global settings instead of per-repository.
This is flag should not be needed anymore, as gitinspector always uses
a reference point such as HEAD or some reivision when looking into the
repository (never the file structure directly).
The default behaviour is now not to localize the output, only the help
text and error messages (all the user interaction).
The way localized messages are fetched in the modules has been modified
as well; to allow for the ability to enable and disable the localization.
Just like in many GNU tools, it is now possible to pass an optional
boolean to some of the flags of gitinspector in the form;
--flag[=BOOL]
This gives us the ability to override options set via git-config.
For example; say we did the following:
git-config --global inspector.timeline true
We could then override this setting when running gitinspector by supplying:
./gitinspector.py --timeline=false
Implementing this was not a trivial task, as no command-line parser in
Python supports this by default (getopt, optparse, argparse). In order to
properly handle optional boolean arguments; some clever patching had to
be done to the command-line in combination with a callback function that
can handle boolean strings. To maintain compatibility with Python 2.6,
this was implemented using optparse (instead of argparse).
In contrast to the -x/--exclude option that can be given on the command
line, --exclude can not be set multiple times when used with git-config.
Luckily, the same behavior can be attained by using the pipe ("|")
character. Ie, specifying the following on the command line:
-x "hello.txt" -x "goodbye.txt"
is the same thing as:
-x "hello.txt|goodbye.txt"
when sent to git-config or the command line.
All long options that can be set in gitinspector (with the exception of
--version and --help) can be configured using git-config. This is only the
first step towards the support of git-config. The reading of the command
line also needs to be changed to support overriding settings from
git-config before this is fully usable. Also; support for --exclude is
not yet included.
If we wanted to enable the timeline across all repositories when running
gitinspector we could do;
git-config --global inspector.timeline true
For local settings (per repository); the --local option can of course be
used when calling git-config.