Karthik Nayak <karthik.188@xxxxxxxxx> writes: > Ah right. Let me summarise: > - Method 1: Inject the extra config to '.clang-format' in the CI's job. > This is the current method. > - Method 2: Create '.clang-format-ci' to use in the CI > - Method 2.a: The new file contains '.clang-format' + CI specific > rules. > - Method 2.b: The new file simply contains the new rules and we inject > the rest in the CI's job. > > I'd say methods '1' and '2.b' are similar, since they modify the tree on > the CI. So no real benefit of one over the other, no? Sorry, but I am not sure what you are trying to say, especially with 2.a and 2.b, your assumption on "the new file". Is it tracked? Try running "git describe --dirty" and see if the command can tell the difference. If you smudge .clang-format, which is a tracked file, it will be noticed. But you can use a temporary file and use --style=file:/... to point at it. The temporary file can be an untracked and ignored file, just like any *.o files we would create during a build. Then "git describe --dirty" would not complain that you are making the working tree dirty. The temporary file does not even have to be inside our working tree. If we know we can write into /tmp/clang-format-rules file, then the CI script can do something like { cat .clang-format echo echo "RemoveBracesLLVM: true" } >/tmp/clang-format-rules git clang-format --style=file:/tmp/clang-format-rules \ --diff --extensions c,h "$baseCommit" right? Then "git status" would even say "there is no untracked cruft" (although I do not know we *need* to keep the working tree that clean, without untracked cruft).