Commit graph

267 commits

Author SHA1 Message Date
Adam Waldenberg
0447da1933 The git log is now read in reverse order.
This makes sure that the most recent email of an author is always used when
generating the gravatar. It also makes sure that the mappings between
author<->email are correct (and recent).
2014-02-19 06:36:06 +01:00
Adam Waldenberg
e902f7b82d Fixed possible exception occurring during stability value gathering.
For now, we return 100 % whenever an author is not found to have any
entries in the changes log. This can happen whenever an author uses the
same email but with different author names.

The solution would probably be to consider these commits to belong to the
same person and merge the results.

This will require some additional changes to the code and a redesign in
the way that author names and emails are mapped.
2014-02-19 06:33:17 +01:00
Adam Waldenberg
02e0858985 The two generated pie graphs now use the same colors (Fixes issue 26).
The same author should have the same color in the two graphs, something
that is more consistent and logical.
2014-02-14 17:26:26 +01:00
Adam Waldenberg
a1e90d0a9d The age value of the blame output now listens to the --weeks flag.
Consequently, the age value now shows the average age of all the rows
blamed to an author in months (or weeks when --weeks/-w is used).
2014-02-14 05:25:14 +01:00
Adam Waldenberg
16154cd0ba Added age value to the blame output (Fixes issue 10).
This completes the "code stability" functionality.

While code stability is a percentage (zero and up) that reflects the
stability of the authors code, the age value is a pseudo-value describing
the average age of all the authors rows. The older the code, the higher
the value.

Code stability can sometimes be above 100%, depending on the way git
calculates insertions and blamed rows.
2014-01-27 03:11:15 +01:00
Adam Waldenberg
98e3f45d65 Added stability value to the blame output. 2014-01-26 02:49:31 +01:00
Adam Waldenberg
d99e8cb58d The help text now talks about repositories instead of directories.
This makes more sense now that gitinspector supports remote repositories
in addition to repositories in the local file system.
2014-01-22 00:46:14 +01:00
Adam Waldenberg
d8bdbe9f6f Fixed broken header in optval module. 2014-01-22 00:24:22 +01:00
Adam Waldenberg
a45df61aa9 Implemented support for remote repositories (Fixes issue 18).
The supported protocols are file://, git://, http://, https:// and ssh://.

Whenever one of the above prefixes are detected in the repository name,
"git clone" is used to clone the repository into a temporary directory.

When "git clone" is called, it's output is redirected to stderr; meaning
that redirection of stdout to a file functions just as before.

If "git clone" fails for some reason, gitinspector will exit; returning
the error code from the "git clone" command.
2014-01-21 12:14:13 +01:00
Adam Waldenberg
974be06f2b Bumped the version number to 0.3.2. 2014-01-15 13:30:15 +01:00
Adam Waldenberg
2b4e6bb111 A newline was missing in the blame output when redirecting stdout. 2014-01-15 13:26:36 +01:00
Kamila Chyla
49c80184e2 Added Polish translation (Fixes issue 16). 2014-01-15 11:17:16 +01:00
Bill Wang
f834fc613e Updated Chinese translation (Fixes issue 11). 2014-01-15 11:11:36 +01:00
Adam Waldenberg
1269df639e Part of the help text in the Italian translation was wider than 80 chars. 2014-01-15 10:09:32 +01:00
Adam Waldenberg
37c295186c The --version flag now outputs the correct years (2012-2014).
This also required a small update to all the (up-to-date) language files.
2014-01-15 10:04:46 +01:00
Adam Waldenberg
3d6789f728 Set the zip_safe flag of setup.py to False (Fixes issue 17).
This hopefully fixes the faulty behavior in egg installations.
2014-01-14 07:18:25 +01:00
Luca Motta
949d73a4b4 Added Italian translation (Fixes issue 20). 2014-01-13 17:40:17 +01:00
Adam Waldenberg
8d9d73549c Updated the locale template (.pot) and the Swedish translation.
As soon as the rest of the languages get updated with the new (and
modified) strings from the .pot file, we should be able to tag a new
release.
2014-01-13 13:42:04 +01:00
Adam Waldenberg
f044b9ef9d Updated README.txt to cover 2012-2014. 2014-01-13 12:06:40 +01:00
Adam Waldenberg
23bc5fbbea Print a warning when the terminal encoding is not set (Fixes issue 19).
This fix also sets the stdin encoding to UTF-8 whenever it is not set.
The behavior as the same as the one for stdout.
2014-01-08 06:05:10 +01:00
Adam Waldenberg
bc00f9731b Fixed some pylint violations in the filtering module. 2014-01-08 04:17:25 +01:00
Adam Waldenberg
af7840be81 Added .cc and .hh to the list of default extensions scanned. 2014-01-08 03:51:02 +01:00
Adam Waldenberg
a1d83ead9e Added support for comments in .hh files. 2013-12-05 08:47:20 +01:00
Adam Waldenberg
abbeed5356 Added support for comments in .cc files. 2013-12-05 08:42:25 +01:00
Adam Waldenberg
37d78ff992 Updated the help command to show information on author/email filtering. 2013-10-30 03:07:45 +01:00
Adam Waldenberg
1a828136b5 Added support for comments in .scala files. 2013-10-28 02:10:09 +01:00
Adam Waldenberg
998ec7456f Added support for comments in .jspx and .xhtml files. 2013-10-25 19:28:31 +02:00
Adam Waldenberg
791e9e39dd Removed unnecessary print in the blame module.
This print should only be enabled in any "interactive format", such as the
terminal (text) output.
2013-09-17 11:56:48 +02:00
Adam Waldenberg
e263982806 Progress text of the blame module was being outputted wrong.
Some regression occurred in a previous commit as the progress text never
was purged out of the output.
2013-09-17 11:53:57 +02:00
Adam Waldenberg
cf0f40cc4d There was a mistake in the calculation of comments in the blame module.
Whenever filtering of author or email was enabled, problems could arise
when calculating comments percentage. Did some reshuffling of the logic;
resolving it.
2013-08-13 19:26:14 +02:00
Adam Waldenberg
c96d3c3ffe The blame module was not behaving quite right when used with "--since".
It was not taking the caret (^) character into consideration when --since
was being specified, something which resulted in an excess of attributed
rows.

With this easy fix, the behavior should now be "correct".
2013-08-13 15:26:42 +02:00
Adam Waldenberg
e7d69d78aa Removed some "#!/usr/bin/python" entries that sneaked into a few files.
This entry should only be present in gitinspector.py (our entry point).
2013-08-08 07:10:04 +02:00
Adam Waldenberg
2633e04c3a Completed the support for bare repositories (Fixes issue 14).
With the missing module now gone, only a few minor modifications were
needed to get it working.
2013-08-03 10:34:45 +02:00
Adam Waldenberg
bc182c6924 Completely removed the missing module and the --checkout-missing option.
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).
2013-08-03 10:30:43 +02:00
Chris Ring
00fdec2928 Initial support for bare repos.
Signed-off-by: Chris Ring <chris@ringthis.com>
Reviewed-by: Adam Waldenberg <adam.waldenberg@ejwa.se>
2013-08-03 09:55:44 +02:00
Adam Waldenberg
a4a0e409a2 Filtering rules can now be separated by a comma.
Instead of specifying -x (or --exclude) multiple times, it is possible to
specify multiple filtering rules by separating each rule with a comma (,)
character. This enables the new support for filtering authors and email to
work in conjunction with git-config.

As a side effect, this means that we reserve the comma character for
internal use in gitinspector and that it can't be used in any regular
expression or filtering rule. However, this is not a big problem.

Of course, specifying -x multiple times (like before) is still supported.
2013-08-03 09:41:21 +02:00
Adam Waldenberg
1edae66fee Added filtering of commits from specific authors or emails (Fixes issue 5).
To access this functionality; the -x flag can now be called in the
following ways:

-x file
-x file:<file>
-x author:<author name>
-x email:<email>

Just passing -x file will presume that the filtering rule is intended for
a file (just like the previous behavior).

All the filtering is case sensitive (even filtering by email) in order to
not break any regular expressions used. Case-insensitive matching can
instead be easily achieved with the appropriate regular expression.

To get reversed filtering (excluding everything not matched within -x) a
regular expression with the a syntax such as '^(?!<rule>)' can be used.
2013-07-30 06:32:58 +02:00
Adam Waldenberg
af29a59c3c Bumped the version number to 0.3.1. 2013-07-29 12:19:42 +02:00
Adam Waldenberg
a75fb1b131 Slightly modified the DESCRIPTION text. 2013-07-29 12:19:32 +02:00
Adam Waldenberg
b219937abe Fixed compatibility with Python 3 in the gravatar module. 2013-07-28 00:13:45 +02:00
Adam Waldenberg
20d82273ec Generated pie charts in HTML view now handle re-sizing better.
This is accomplished with the use of the flot re-size plugin. Thanks to
this, pie charts no longer have to be set to a fixed size.
2013-07-27 23:48:34 +02:00
Adam Waldenberg
0664702b8f Added git dependency to stdeb.cfg (it was obviously missing). 2013-07-27 14:05:09 +02:00
Adam Waldenberg
6c4823aa31 Slightly tweaked (and improved) the CSS of the responsibilities module. 2013-07-27 13:56:38 +02:00
Adam Waldenberg
171474a501 Minor authors in the HTML responsibilities view are now collapsed.
This works in the same manner as the other filtering available in the HTML
view. The minor authors of the responsibilities view equal the minor
authors of the blame view.
2013-07-26 03:18:00 +02:00
Adam Waldenberg
67418fa25d Changed the way e-mail addresses are collected when analyzing the git log.
Previously, an email for a specific author was collected whenever some
insertions/deletions were detected in an active or valid extension. This
was introduced with the addition of gravatars.

This had the side-effect that if #author1 committed some rows to a file
with an inactive or non-valid extension and #author2 later moved some of
those rows into an active or valid extension, those rows could still
belong to #author1. Consequently, when associating the author name with
an email in the blame phase, there would not be any stored email for
#author1 and no email would be associated with that author or those blamed
lines.

Emails are now (instead) always stored and associated with an author
regardless of the work or files analyzed.
2013-07-25 23:36:50 +02:00
Adam Waldenberg
353f8daee1 BlameOutput no longer takes an object of a Changes class as argument.
This is unnecessary as there is a get() function inside the changes module
to fetch an object of this class, so we can fetch this directly in
BlameOutput.__init__().
2013-07-25 14:37:19 +02:00
Adam Waldenberg
772cef01d4 Added support for gravatars to the responsibilities module.
In the process, also took the opportunity to improve the HTML output a bit.
2013-07-25 14:32:57 +02:00
Adam Waldenberg
e200fa42f9 Added some missing spaces to the Chinese translation.
There was a mistake at the top of the translation to the help text.
2013-07-25 11:37:02 +02:00
Adam Waldenberg
6b4de5d676 Updated the locales to work with the previously updated error string. 2013-07-25 09:21:23 +02:00
Chris Ring
92ef11fa20 Fix typo in error message.
The error message when using an incompatible version of
Python contains a typo.

Signed-off-by: Chris Ring <chris@ringthis.com>
Reviewed-by: Adam Waldenberg <adam.waldenberg@ejwa.se>
2013-07-25 09:03:03 +02:00