It seems impossible, but we somehow lost a small changeset during a boring-looking merge. I can't share the repository publicly, but I'll try and show as much detail as I can.
A particular merge, SHA f1b6d234f, does not have a single-file bugfix that we expected it to have. On examination, it turned out that although f1b6d234f^2 has the fix, it does not appear in the history of f1b6d234f at all (but does appear in --full-history). `git diff f1b6d234f^2 f1b6d234f` shows the change being reverted by the merge. The thing is, with respect to this particular file, f1b6d234f^1 and f1b6d234f^2 differ only in the one bugfix commit -- that is, they have precisely the same history except for the one bugfix commit in f1b6d234f^2[1]. `git show` shows the same thing as the filesystem. `git fsck` shows some dangling blobs, but nothing new or related to this. Trying to cherry-pick or re-merge f1b6d234f^2 into f1b6d234f doesn't do anything; git feels that f1b6d234f is already up to date with respect to f1b6d234f^2. The repository itself seems to be healthy: you can clone it, make new branches, and so on without a problem. Strangest of all, I can't _reproduce_ this problem: when I check out f1b6d234f^1 and merge f1b6d234f^2 into it, or vice versa, I get the result I expect. So, why might the merge have discarded that commit? Are there other debugging steps I can take? What could we have done to prevent this from happening? 1: Some output from `git log` which demonstrates this, unless I've misunderstood something: > git log -b f1b6d234f "--pretty=tformat:%h %aD" -n4 path/to/file 731c326 Mon, 26 Sep 2016 14:07:20 -0400 f0dde96 Mon, 26 Sep 2016 13:43:13 -0400 b54b363 Thu, 12 Feb 2015 13:42:32 -0500 12b6a8a Thu, 12 Feb 2015 00:01:41 -0500 > git log -b f1b6d234f^1 "--pretty=tformat:%h %aD" -n4 path/to/file 731c326 Mon, 26 Sep 2016 14:07:20 -0400 f0dde96 Mon, 26 Sep 2016 13:43:13 -0400 b54b363 Thu, 12 Feb 2015 13:42:32 -0500 12b6a8a Thu, 12 Feb 2015 00:01:41 -0500 > git log -b f1b6d234f^2 "--pretty=tformat:%h %aD" -n4 path/to/file cd7dcd2 Mon, 17 Oct 2016 14:31:00 +0200 <---- the missing commit 731c326 Mon, 26 Sep 2016 14:07:20 -0400 f0dde96 Mon, 26 Sep 2016 13:43:13 -0400 b54b363 Thu, 12 Feb 2015 13:42:32 -0500 -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
