Skip to content

Tags: hzf1174/RepoSense

Tags

v1.5.5

Toggle v1.5.5's commit message
[reposense#323] Make branch an optional field (reposense#332)

By default when git clones a repository, it will be at the base
(GitHub) or working (local) branch.

Checking out to master is a redundant step that doesn't guarantee that
we will be analyzing the base/working branch.

Let's configure RepoSense to treat the current working branch as the
base for analysis.

v1.5.4

Toggle v1.5.4's commit message
[reposense#370] Fix uncaught InvalidPathException due to Illegal char…

… <:> in file name (reposense#371)

Windows disallows certain characters for the file names, such as `/\:*?"<>|`,
while other OSes like Linux allows almost any characters for their file names.
This may result in some files with such `banned` characters in the repository
to not be copied/cloned into a local copy for Windows OS.

As we use the `git diff` command to find file differences for analyzing
repositories with a date range, such files with `banned` characters may appear
in the `git diff` result, which result in an InvalidPathException being thrown
when we try to create a Path to this file name, which is invalid in Windows.
This causes the program to crash as the exception is not handled anywhere.

Let's update FileInfoExtractor to handle files with invalid file names by
skipping those files.

v1.5.3

Toggle v1.5.3's commit message
[reposense#358] Report#datepicker: default value not filled on initia…

…l load (reposense#359)

The date picker does not display the date range of summary view on
load.

Let's obtain the date picker value from the hash param if provided,
otherwise, set it to be the minimum and maximum dates of the generated
report by default.

v1.5.2

Toggle v1.5.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
[reposense#363] Make the commits info analysis case insensitive (repo…

…sense#364)

CommitInfoExtractor uses git log to extract users' commits info.
However, by default, the author matching pattern used in git log is
case sensitive.

This can cause the CommitInfoAnalyzer to miss out some or all their
commits in the analysis. As a result, some authors do not have any
ramps shown in their ramp chart, even though their code view shows line
contributions.

To resolve this problem, let's set the git log regex patterns to be
case insensitive.

v1.5.1

Toggle v1.5.1's commit message
[reposense#357] FileInfoExtractor: use cleaner alternative to extract…

… code change (reposense#361)

FileInfoExtractor#getEditedFileInfos(...) first checks for each file
whether they in a blacklist of 'uncommon' file changes which does not
follow the line patterns that we check for, and skips those files as they
are all unchanged files that does not have any difference to check for.

As there are many of such 'uncommon' file changes, some of these changes
may not have been added in our blacklist yet, which may cause the program
to crash unexpectedly, e.g reposense#215 reposense#300 reposense#356.

Instead of trying to find out each of this 'uncommon' file changes and
blacklisting each 1 of them, it is easier and cleaner to whitelist only
those files that have valid diff file changes which follow the line patterns
we are checking for.

Let's change the blacklist for valid diff files to be a whitelist instead,
and check for the exception if this file is deleted.

v1.5

Toggle v1.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Fix error occurred from file change due to permission bits modificati…

…on (reposense#356)

We use git diff to extract file infos. In particular rare cases, our
code fails to extracting relevant file infos for certain commits, due
to special extended header lines `old mode 100644` 
`new mode 100755` returned by the git diff, it throws an
AssertionError halfway during the analysis.

This is due to git, besides the file content and changes, it also
tracks the executable bit of the files' permission. As our program did
not foresee this scenario, it crashes upon the occurrence.

Let's fix this by inserting additional guard clause for this scenario
in our FileInfoExtractor.

v1.4

Toggle v1.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
[reposense#331] UserGuide: update outdated content (reposense#335)

v1.3.1

Toggle v1.3.1's commit message
[reposense#304] Fix TypeError: "commits[0] is undefined" (reposense#303)

For authors with absolutely no commit history,  v_summary runs into
trouble trying to determine the date range of the commits.

Let's do a check before calculating the date range of the commits.

v1.3

Toggle v1.3's commit message
[reposense#301] Hotfix: report folder not generated when failed to an…

…alyze repo (reposense#302)

When we fail to clone/checkout a config's repository, we will
skip analyzing that repository, thus not generating its report folder.

However, as the config is still inside the config list, we will still add
that 'failed' config into summary.json. This will cause the dashboard
to crash as it tries to load a report folder which does not exist.

Let's update ReportGenerator to generate the report folder with
'empty' reports when failing to clone/checkout the repository, so as
to allow the dashboard to be viewed, and also allow the user to identify
errors in which repository config info given.

v1.2.1

Toggle v1.2.1's commit message
Add tests to RepoConfiguration#merge (reposense#279)

AuthorConfigCsvParser#getRepoConfiguration should return existing
RepoConfiguration from a list of RepoConfigurations. Otherwise it adds
a newly created RepoConfiguration into the list and returns it.

However, due to a bug, any RepoConfigurations existing or not are added
to the list of RepoConfigurations causing duplicates.

Let's add test to RepoConfiguration#merge to prevent bugs.