SPOILER ALERT: This series contains answers to the "fun puzzle" at https://public-inbox.org/git/CABPp-BFc1OLYKzS5rauOehvEugPc0oGMJp-NMEAmVMW7QR=4Eg@xxxxxxxxxxxxxx/ When a merge succeeds, we expect the resulting contents to depend only upon the trees and blobs of the branches involved and of their merge base(s). Unfortunately, there are currently about half a dozen cases where the contents of a "successful" merge depend on the relative commit timestamps of the merge bases. Document these with testcases. (This series came out of looking at modifying how file collision conflict types are handled, as discussed at [1]. I discovered these issues while working on that topic.) [1] https://public-inbox.org/git/CAPc5daVu8vv9RdGON8JiXEO3ycDVqQ38ySzZc-cpo+AQcAKXjA@xxxxxxxxxxxxxx/ Elijah Newren (6): t6036: add a failed conflict detection case with symlink modify/modify t6036: add a failed conflict detection case with symlink add/add t6036: add a failed conflict detection case with submodule modify/modify t6036: add a failed conflict detection case with submodule add/add t6036: add a failed conflict detection case with conflicting types t6036: add a failed conflict detection case: regular files, different modes t/t6036-recursive-corner-cases.sh | 451 ++++++++++++++++++++++++++++++ 1 file changed, 451 insertions(+) -- 2.18.0.130.gd703bbb5d