We are making extensive use of submodules at work and we have created a number of extra scripts to simplify our usage. For example, there is git-rstatus, which recursively reports status of all submodules.
I am working on another script to check whether or not a change to any submodules jump branches. If we have commits like this:
A--B--C \--D
I don't care if a submodule moves from A to C or B to C, but I do care if a commit of the super-project would cause a jump from D to C or revert from C to B, effectively dropping previously committed code on the floor.
So, is there a "correct" or "best" way to determine if one commit's SHA follows directly from another's SHA in the commit history?