Hi René
On 06/05/2024 19:23, René Scharfe wrote:
Am 05.05.24 um 17:25 schrieb Phillip Wood:
Merge strategies are expected to exit 0 on success, 1 when there are
conflicts and another non-zero value for other errors - it would be
nice to do something similar here where 1 means "there were
differences" but it is probably too late to do that without a config
value to indicate that we should trust the exit code.
Right, such a diff command protocol v2 would not need to pipe the
output through an inspection loop. Sounds like a good idea. It's
unfortunate that it would increase the configuration surface, which is
not in an acute need to expand. We could advertise the new option when
dying due to the unsupported combination of --exit-code and external
diff, but that's in equal parts helpful and obnoxious, I feel.
Yes, diff dying would be annoying but the message would be useful.
Thinking about the external diff and some of the other diff options I
wonder what we should do when options like "--quiet" and "--name-only"
are combined with an external diff (I haven't checked the current
behavior). If we introduced a diff command protocol v2 we could include
a way to pass through "--quiet" though maybe just redirecting the stdout
of the external command to /dev/null and using the exit code would be
sufficient.
Best Wishes
Phillip
P.S. I haven't forgotten about our unit-test discussion but I'm afraid
it will probably be the middle of next month before I have time to reply.