• Ben Avison's avatar
    [prodcommit] Speed optimisation · e12f8677
    Ben Avison authored
    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.
    e12f8677
prodcommit 2.98 KB