It's actually even worse than that. Even plain text files can cause problems. You make a change to a file over here, then you delete the file over there. What should be the result of the merge? There are an infinite number of such screw cases because the "right answer" depends on the semantics of the data. For example: you add a line to a file over here, then you add the same line to the same file in the same location over there. What should be the result of the merge? Should you end up with one extra line or two? What if one line has an extra trailing space? What if it was an extra leading space and the file contains Python code?