[prodcommit] Speed optimisation
Previously, prodcommit
used git submodule summary --cached
as the basis
of the commit log it generated, and then proceeded to throw away much of the
information it provided. Now, this command is extremely slow, especially on
Windows machines where it can take a minute or more to execute. Replace this
with one of the plumbing commands that git submodule
used internally, viz
git diff-index --cached HEAD
, which provides most of the information it
needed, but far faster (more like 0.1 seconds). The one catch is that it
reports the state of all changed items in the tree, not just the submodules,
but due to the way we structure superprojects, we can simply assume that
anything within the top-level RiscOS
directory is a submodule.
The commands that determine whether a given submodule is a regression, as
well as the embedded invocation of git commit
, remain relatively slow
operations on Windows, but the overall process is typically now about 3 times
faster than it was previously.