Tags: hzf1174/RepoSense
Tags
[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.
[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.
[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.
[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.
[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.
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.
[reposense#331] UserGuide: update outdated content (reposense#335)
[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.
[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.
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.
PreviousNext