1. A method, comprising: identifying, by operation of a computer processor based on a search granularity, a source code of a first commit of a plurality of commits for a software project; successfully building the source code of the first commit for a first system architecture and a second system architecture; determining, based on a set of tests ran against the built source code of the first commit for the first and second system architectures, that the first commit is a latest working build for the first and second system architectures, wherein a respective number of failures incurred by running the set of tests does not exceed a failure threshold; computing a score for each commit in a first set of the plurality of commits, wherein each score reflects a likelihood of success in porting the source code of the respective commit from the first system architecture to the second system architecture, wherein a version of each commit in the first set of commits is between a version of the first commit and a current version of the software project; identifying a second commit of the first set of commits based on the scores for each commit; patching the source code of the first commit and the source code of the second commit; building the patched source code of the first and second commits for execution on the second system architecture; determining that the patched source code did not build successfully for execution on the second system architecture based on an error at a first line of the patched source code; and outputting for display: (i) an indication that the patched source code did not build successfully, and (ii) the first line of the patched source code.