Challenge Overview
Challenge Objectives
-
Target environment: GitLens (VSCode Extension)
-
Basic Requirements: Extend GitLens to add required features.
Project Background
Git is the leading open source SCM (Software Configuration Management), our clients like the popular Git Diff VSCode extension GitLens for SCM. However, GitLens lacks some features that the clients need, so they want to add the missing functionalities into it. We would like to make this tool a much more valuable code review tool.
Technology Stack
Git
GitLens (VSCode Extension)
-
Electron
-
NodeJS
-
TypeScript
Individual requirements
We ran a Code challenge to extend the GitLens, https://www.topcoder.com/challenges/30070639/?type=develop&tab=details
However, the submission missed some major requirements, so we run this challenge to address all missed requirements.
Code base: please work on my forked repo https://github.com/billsedison/vscode-gitlens/tree/tc-dev
tc-dev branch, the latest commit hash 5d5b9e65a65bd0816fa8229d007cf2b10a812119
1. Select multiple commits and aggregate diff
Currently, we can only select a single commit and compare with other commits on GitLens. We need to extend GitLens to add the functionality for multi-selecting non-consecutive commits.
The diff of selected commits is aggregated automatically. You can take the same functionality of IDEA as a reference, here is a demo video.
2. Support filtering by commit SHAs
Currently, the GitLens supported to filter commits by
-
branch
-
author
-
date (all dates, date range, last 24 hours, last 7 days)
-
message (regex)
But we need to add filtering by commit SHAs support to it.
3. Separate windows to show details of commits
By clicking each commit or the aggregate diff, it should prompt a separate window to show the file change set in the commit.
By clicking the file in the changeset, it should prompt a separate window to show the content and the diff.
The behavior is the same as the functionality of IDEA, here is a demo video for your reference.
Note: please feel free to ask questions in the forum if you think anything is unclear.
Final Submission Guidelines
- A Git patch against the latest commit hash of the tc-dev branch of the repo.
- A detailed README.md to show how to apply your patch and run the modified GitLens.
- A video to verify your modified GitLens meets all requirements. If you are not comfortable with spoken English you may feel free to annotate your video with text.