The first build of a branch project should have a UI link like Previous Build but pointing to the build on the project corresponding to the base branch (such as master for Git) which its SCM revision links to. Should use SCMSource.parentHeads; major SCM plugins needs to implement this API. When present, the base build should be used as a baseline for determining the SCM changelog, so that a user can see the changes made in the SCM commit initiating a branch. An API should also be introduced to core so that plugins such as junit can use this backlink rather than previousBuild for purposes of comparing test results; the same could be true of static analysis, code coverage, etc.
Merely changing Run.getPreviousBuild to return a build from another Job is unsafe; many plugins may assume that the Job pairs match, or that getNextBuild is the inverse operation, etc. Perhaps we need an API addition to Run such as
which would most closely preserve existing semantics: build-to-build comparisons.
which would allow a plugin to display the cumulative changes from the base branch, which may be more relevant.
(For example, in a build of a PR you probably want to know whether there are FindBugs regressions relative to the base branch, not whether the 13th commit to the PR introduced regressions relative to the 12th commit.)