At this moment, the number of installations for git-plugin is 200,000+ and git-client-plugin has a similar usage. These two plugins have one of the most extensively used implementations of SCM API and performance improvement is a much-needed task which is going to affect a broad Jenkins audience.
In this project, I wish to use the principles of micro-benchmarking to create and execute a test suite which involves comparison of GitClient APIs implemented by CliGitAPIImpl and JGitAPIImpl using “average execution time per operation” as a performance metric. The results from this study can be used to prioritize implementation for a particular operation and provide an option to the users to improve end-to-end performance of the plugins.
Apart from benchmarking, I wish to resolve the JENKINS-49757 issue. Currently, git checkout step calls git fetch twice, where the second fetch is an incremental call. Resolution of this issue will improve git plugin performance.
Also, by running JUnit tests with code coverage, I wish to identify and create more automated test cases which cover the implementations in git-client-plugin and their functionalities in the git-plugin.