Commit graph

441 commits

Author SHA1 Message Date
Adam Waldenberg
d0798d8358 Set ref to HEAD when starting changes analysis i (Fixes #132).
This gets rid of any invalid refs being set at a subsequent point during
execution.
2017-05-13 15:43:09 +02:00
Adam Waldenberg
a56680c4b4 Handle git-rev-list and git-ls-tree with empty changesets (#132, #115).
If the changeset was empty or filtered with no matching files a bunch of
errors would be thrown from git with no proper results being returned
back to gitinspector.

We now pipe stderr (catching the output) and also check the return code
when running these commands.
2017-05-13 15:41:13 +02:00
Adam Waldenberg
8cff4bd208 Removed logically redundant part of an if statement.
The len(self.commits) > 0 check was already being performed one level up.
2017-05-13 15:41:13 +02:00
Adam Waldenberg
983d3d05bd When generating the report, summed changes need to be non-empty (#132).
Previoulsy, we were just checking against the changes returned from the
last repository analyzed - which of course broke the whole thing if that
repository had no matching commits!
2017-05-13 15:39:38 +02:00
Adam Waldenberg
9f336e63ce Faulty clone code made it possible to run gitinspector in sub-directories.
This resulted in undefined behavior. The base directory was being
incorrectly defined when cloning did not occur.
2017-05-12 15:31:28 +02:00
Adam Waldenberg
ba1c3341fe The typo "defaut" should be "default" in documentation (Fixes #113). 2016-07-19 04:04:31 +02:00
Adam Waldenberg
e543eeaf58 Only include valid extensions in blame output (#95). 2016-02-03 14:22:19 +01:00
Adam Waldenberg
6e0365e8ba Fix inconsistent behavior with -f "**" (#95).
Improved by taking advantage of the detected file types during the first
pass in the changes module.
2016-02-03 11:47:00 +01:00
Adam Waldenberg
139f5306f4 Better support terminals behaving like urxvt (Fixes #101).
This terminal was allowing backspaces (\b) to bypass column zero on the
current row, completely breaking the current way gitinspector was
clearing text outputted to the currently active row.
2016-01-21 00:22:52 +01:00
Adam Waldenberg
9b5bbc469f Removed superfluous quotation character in the JSON metrics output. 2015-12-18 08:41:46 +01:00
Adam Waldenberg
a9d519c93b Recognize Rust programming language (.rs) comments (#83). 2015-12-17 03:15:22 +01:00
Adam Waldenberg
9aa4aba336 Removed size parameter from gravatar URL's in JSON output (#50). 2015-12-17 03:08:33 +01:00
Adam Waldenberg
6ef9936508 Fix some minor typos in the documentation.
Also regenerated the documentation using AsciiDoc.
2015-12-14 05:19:09 +01:00
Adam Waldenberg
150e316918 Add documentation about JSON output to the AsciiDoc file. 2015-12-14 05:17:11 +01:00
Adam Waldenberg
ba049a0367 Fix AttributeError thrown when no extensions were detected (Fixes #91).
The bug was introduced with the commit ecc67a3 and was caused by the
initialization of an empty Changes object.

This fix makes sure that the __iadd__() method properly handles empty
change sets and returns a satisfactory object back when completing
execution.
2015-12-12 07:49:58 +01:00
Gregrs
3c48789890 Recognise Lilypond (.ly and .ily) comments 2015-12-10 07:34:18 +00:00
Adam Waldenberg
533bba64c6 Recognize comments in Robot Framework (.robot) files (#88). 2015-12-09 09:30:49 +01:00
Adam Waldenberg
4ee02f5907 Recognize Go language (.go) comments (#86). 2015-11-27 23:41:53 +01:00
Adam Waldenberg
5275521a9a Added author and license meta data to gitinspector piclet image. 2015-11-26 00:58:30 +01:00
Adam Waldenberg
ecc67a31a5 Repositories are now merged with __iadd__() instead of __add__().
Thus, we are overriding the "+=" operator instead of "+". This
implementation results in a much cleaner solution as we were directly
updating "self" when overriding __add__(), something which isn't really
an acceptable solution as we were changing the supplied in-parameters.
2015-11-25 17:28:50 +01:00
Adam Waldenberg
9bd4b979b3 Fixed confusing variable names in JSON output functions and methods.
These functions and methods were originally based on the XML output.
Consequently, those variable names were also preserved. All "<name>_xml"
variables are now named "<name>_json" instead.
2015-11-24 21:20:35 +01:00
Adam Waldenberg
bfde70db91 Include author email in JSON and HTML outputs (Fixes #85). 2015-11-24 21:02:32 +01:00
Adam Waldenberg
12f8c8a192 Use repos_string instead of repos[0].name in JSON output in format.py. 2015-11-07 05:55:14 +01:00
Adam Waldenberg
9a22763e64 Added missing line break in format.__get_zip_file_content__(...). 2015-11-07 05:52:23 +01:00
Adam Waldenberg
346645d655 The format.__output_html_template__(...) function now cleans up. 2015-11-07 05:51:40 +01:00
Adam Waldenberg
91d94446a7 The logo in the HTML output now links to the gitinspector page. 2015-11-04 05:56:52 +01:00
Adam Waldenberg
88d840dd51 Gitinspector now has a better and more clear logo. 2015-11-04 05:31:24 +01:00
Adam Waldenberg
26f77e0ee4 The XML output now prints repositories in a proper XML list.
If one repository is found, the following format is used:

<repository>name</repository>

If multiple repositories are found, the following format is used:

<repositories>
	<repository>name</repository>
	<repository>name</repository>
	...
</repositories>
2015-11-03 23:00:17 +01:00
Adam Waldenberg
4d6ecd3123 Avoid hyphen characters ("-") in JSON properties.
Using that character is obviously a bad idea, as it is reserved
for substraction in most programming languages; making output a
hassle to parse.
2015-11-03 22:52:17 +01:00
Adam Waldenberg
9b3a5b674e Some output was missing in the JSON output.
Repository names, gitinspector version and report date were all missing
from the output when JSON was selected.
2015-11-03 22:42:23 +01:00
Adam Waldenberg
87fd5b467f Upgraded the JQuery version in the flot archive to 1.9.1 (#28).
This is the minimal version required by Bootstrap3 (which we will
base the new responsive HTML theme on). This upgrade required changes
to the JavaScript code, as toggle(...) has been deprecated since
version 1.9.x of JQuery.
2015-11-03 04:25:40 +01:00
Adam Waldenberg
4fd918fca4 Fixed some pylint violations. 2015-11-03 00:44:47 +01:00
Adam Waldenberg
949a301698 Fixed a few typo mistakes in the HTML output of the format module. 2015-11-03 00:36:05 +01:00
Adam Waldenberg
211060c20e Updated the flot archive to version 0.8.3. 2015-11-03 00:33:16 +01:00
Adam Waldenberg
9ada057d81 Progress output now includes repository name (#24).
The name of the repository is only printed when multiple repositories
are specified. Otherwise, gitinspector falls back to the previous
behavior
2015-11-02 18:22:56 +01:00
Adam Waldenberg
7dda8d34b5 Made terminal.output_progress(...) aware of the terminal width.
Instead of clearing the row using the "\b" character on each
iteration, the function now passes a carriage return ("\r") instead.
Furthermore, the row is now always completely cleared before
printing the progress.
2015-11-02 18:02:54 +01:00
Adam Waldenberg
d5106a7302 Implemented validation and printing of all supplied repositories (#24).
Upon start-up, now directly passes all supplied paths to git in order
to check if all of them point to a valid git repository.

The clone.create() function now returns a list of Repository instances,
containing the name and location of the repository. This is later
used in the gitinspector module to execute and parse the repository.

format.output_header(...) now takes a list of Repository instances.
Thanks to this, each output format can print every supplied repository.
2015-11-02 02:30:28 +01:00
Adam Waldenberg
01bdbfaba1 basedir.get_basedir_git() now takes an optional path argument.
This enables us to change the working directory for the git commands
in the function upon request. This change is in preparation of the
completion of #24.
2015-11-01 17:19:46 +01:00
Adam Waldenberg
7f5b50cd0d Fixed formatting bug in the JSON output of the metrics module.
Sections in the metrics output were not being separated with a comma,
leading to invalid JSON.
2015-11-01 03:45:44 +01:00
Adam Waldenberg
802f18e7e5 The metrics module now supports multiple repositories (See issue #24). 2015-11-01 03:36:40 +01:00
Adam Waldenberg
7acf871ab1 Help text now mentions support for multiple repos (See issue #24). 2015-10-31 05:11:10 +01:00
Adam Waldenberg
98615ccbfc Support for multiple repositories is near completion (See issue #24).
Only the metrics module is lacking support. While the rest should work,
please note that it is completely untested as of now and probably
has some rough edges.
2015-10-31 05:10:00 +01:00
Adam Waldenberg
46b21db196 The changes module now supports multiple repositories (See issue #24).
Just as before, all other parts of gitinspector currently do not
support fetching statistics from multiple repositories and just
simply fetch data from the last repository specified.
2015-10-31 03:44:00 +01:00
Adam Waldenberg
3bae1be0cb Fixed faulty import in metricsoutput module. 2015-10-31 02:22:25 +01:00
Adam Waldenberg
9287b187f7 Fixed some pylint violations. This also takes care of some bugs. 2015-10-31 00:03:51 +01:00
Adam Waldenberg
dd2feedbe4 Fixed invalid indentation at begining of file in gitinspector.py. 2015-10-30 23:54:04 +01:00
Adam Waldenberg
e0941fdcf1 The gitinspector.py entry module now considers all repositories.
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.
2015-10-30 23:46:13 +01:00
Adam Waldenberg
109a94e1e7 The basedir module is no longer persistent (doesn't remember state).
This is required in order for it to be callable multiple times for
multiple repositories (Needed for #24).
2015-10-30 23:29:03 +01:00
Adam Waldenberg
258eefa1e7 The clone module can now handle multiple repositories.
This is needed to allow gitinspector to be able to clone multiple
repositories during the same execution (Needed for #24).
2015-10-30 23:16:33 +01:00
Adam Waldenberg
d88ff2c5b9 Slight cleanup in gitinspector.py.
Renamed all "local" declarations in main().
2015-10-30 03:41:09 +01:00