On Mon, Apr 23, 2018 at 4:46 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Elijah Newren <newren@xxxxxxxxx> writes: > >> Out of 53288 merge commits with exactly two parents in linux.git: >> - 48491 merged identically >> - 4737 merged the same other than a few different "Auto-merging >> <filename>" output lines (as expected due to patch 35/36) >> - 53 merged the same other than different "Checking out files: ..." >> output (I just did a plain merge; no flags like --no-progress) >> - the remaining 7 commits had non-trivial merge differences, all >> attributable to directory rename detection kicking in >> >> So, it looks good to me. If anyone has suggestions for other testing >> to do, let me know. > > There must have been some merges that stopped due to conflicts among > those 50k, and I am interested to hear how they were different. Or > are they included in the above numbers (e.g. among 48491 there were > ones that stopped with conflicts, but the results these conflictted > merge left in the working tree and the index were identical)? They are included in the categories listed above. What my comparison did was for each of the 53288 commits: 1) Do the merge, capture stdout and stderr, and the exit status 2) Record output of 'git ls-files -s' 3) Record output of 'git status | grep -v detached' 4) Record contents of every untracked file (could be created e.g. due to D/F conflicts) 5) Record contents of 'git diff -M --staged' 6) Record contents of 'git diff -M' (all of this stuff in 1-6 is recorded into a single text file with some nice headers to split the sections up). 7) Repeat steps 1-6 with the new version of git, but recording into a different filename 8) Compare the two text files to see what was different between the two merges, if anything. (If they are different, save the files somewhere for me to look at later.) Then after each merge, there's a bunch of cleanup to make sure things are in a pristine state for the next merge.