Forensics API Plugin Without the Git Forensics Plugin

Currently only one plugin implements this API, the Git Forensics Plugin. According to the documentation.

What is the difference between discoverReferenceBuild() and discoverGitReferenceBuild()
The first one comes from the Forensics API Plugin.
That last one comes from the Git Forensics Plugin.

What can then the step discoverReferenceBuild do on its own without an implementation?

discoverReferenceBuild always chooses the last completed build of the reference job as the reference build. discoverGitReferenceBuild can choose an earlier build of the reference job, depending on the Git commit history.

Suppose Jenkins has builds #5 and #6 of the “master” branch. Then someone makes a pull request from another branch “bugfix” to the “master” branch. The “bugfix” branch was based on the commit from which Jenkins built master #5, and does not contain the additional commits that were in master #6. When Jenkins builds the “bugfix” branch, discoverReferenceBuild would detect that the pull request targets the “master” branch, and choose master #6 as the target build because it is the latest completed build there. In contrast, discoverGitReferenceBuild would choose master #5. That’s how it’s intended to work, at least; IIRC it can lose track of the commits and builds if there are too many.