2.4.16-12 vs 2.4.16-35 - obviously -35 is later.
But 2.4.16-bcbd1c6 vs 2.4.16-d645104 - which is later? Compile dates won't necessarily help because "earlier" code could have been compiled later.
It's forcing the versioning to do something it shouldn't, arguably, but is nice to have something that the user can decipher (even if you still should have the commit).
Suggestion: more conventional and intuitive would be: --version --verbose
Most commercial software gives you a detailed version report.
Either way, the simplest solution would be -v, and -vv and -vvv … don’t do moreversion or lessversion.
The equivalent would be —version —version —version.