I have a billion testsuite golden output files that have changed due to an explicit ordering of objects I've imposed on output. A helper script I wrote to help parse the diffs (to ignore order-only differences) noticed that one hunk had a different number of additions and deletions. I'm manually copying and pasting the hunks from git add -i into the script. However, when I used git diff to get at the changes, to discover which line was the offending one, all additions and deletions were exactly matched! With strace I noticed that git add -i calls git diff-files, and that's about as far as I can conveniently trace where things are going weird. Weird: $ /usr/local/git/bin/git diff-files -p --color -- TwoStageAmp-output.net diff --git a/gnetlist/tests/common/outputs/osmond/TwoStageAmp-output.net b/gnetlist/tests/common/outputs/osmond/TwoStageAmp-output.net index a5ee1e7..a9f3620 100644 --- a/gnetlist/tests/common/outputs/osmond/TwoStageAmp-output.net +++ b/gnetlist/tests/common/outputs/osmond/TwoStageAmp-output.net @@ -1,47 +1,47 @@ -Part unknown { Name Cout } -Part unknown { Name R5 } -Part unknown { Name R4 } -Part unknown { Name RE2 } -Part unknown { Name Q2 } +Part unknown { Name R8 } Part unknown { Name A3 } -Part unknown { Name R3 } Part unknown { Name A2 } -Part unknown { Name RE1 } Part unknown { Name A1 } [snip] $ /usr/local/git/bin/git diff TwoStageAmp-output.netdiff --git a/gnetlist/tests/common/outputs/osmond/TwoStageAmp-output.net b/gnetlist/tests/common/outputs/osmond/TwoStageAmp-output.n index a5ee1e7..a9f3620 100644 --- a/gnetlist/tests/common/outputs/osmond/TwoStageAmp-output.net +++ b/gnetlist/tests/common/outputs/osmond/TwoStageAmp-output.net @@ -1,47 +1,47 @@ -Part unknown { Name Cout } -Part unknown { Name R5 } -Part unknown { Name R4 } -Part unknown { Name RE2 } -Part unknown { Name Q2 } +Part unknown { Name R8 } Part unknown { Name A3 } -Part unknown { Name R3 } Part unknown { Name A2 } -Part unknown { Name RE1 } -Part unknown { Name Q1 } <--- Not present with diff-files output Part unknown { Name A1 } [snip] The index is clean on TwoStageAmp-output.net (but by now a million other files are dirty in the index). While I discovered this issue with Ubuntu's 1.7.1, I got the same behaviour with git 1.7.12.rc2.18.g61b472e What's going on here? I'll leave my tree in whatever weird state it might be, for a while, in case anyone wants me to try various things. At this point I want to understand what's going on, in case there's either a learning moment for me or a bug, rather than just finding a workaround. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html