I think they have a similar goal. The difference sounds like gta uses git for change detection while bazel uses hashes to detect changes (hashes include the hashes of the transitive closure of the deps; it’s a dag). The latter is more robust in the face of noop edits that don’t change the output as well as distributed caching of test/build results.