I'd like my releases to have major.minor.patch version number. While increments of major.minor are something one has to do manually, I don't want to do that for patch.
So I was thinking of having a VERSION file in the repo containing major.minor and then calculate patch at the given commit C automatically as the length of the longest path starting at C in the subgraph containing only commits in which VERSION is the same as C's.
I can do that pretty easily right now by
* identifying commits in which VERSION changes with `git log -- VERSION` and then * walking the graph in topo order with `git log --format=format:"%H %P"`.
The latter step can terminate early, so it doesn't have to walk the entire repo, but the latter walks everything and can be quite slow.
Is there a more efficient way to do this?
If not, would there be an interest in a new builtin (git-depth?) that would calculate the value?
-- Martin