Source control is all about managing diffs. Large files are fine, binary doesn’t make sense. Most of the time binary file diffs aren’t human readable.
I store binary files outside of git but keep build logs containing binary file CRCs on git
I store binary files outside of git but keep build logs containing binary file CRCs on git
In git, diffs are literally just a UI thing.
It is.
> Surely Git does have an internal concept of diffing changes
Not in the data model. Packing has deltas, but they're not textual diffs, and they would work fine with binary data... to the extent that the binary data doesn't change too much and the delta-ification algorithms are tuned for that (both of which are doubtful).
> specifically so it knows whether two commits can be merged automatically or if they conflict (because they changed the same lines in the same file).
Conflict generation & resolution is performed on the fly.