Is there an way that you can run
One of the reasons I feel like this should be easier than it is because -output-replacements-xml essentially gives me the answer that I want, it just doesn't give it to me in an easy to consume way. However, since the output if no replacements are needed is very predictable, parsing the output isn't too hard.
What I have right now is
clang-format -style=file -output-replacements-xml | grep -c "<replacement " >/dev/null
This actually returns the inverse of the exit code I want, since grep returns 0 if something matches, 1 if nothing does. But that is easy enough to deal with.
So the relevant bit of my git pre-commit hook would be
git diff --cached --name-only --diff-filter=ACMRT | grep "\.[cmh]$" | xargs -n1 clang-format -style=file -output-replacements-xml | grep "<replacement " >/dev/null if [ $? -ne 1 ] then echo "Commit did not match clang-format" exit 1; fi