)]}'
{
  "commit": "7cb5597013f0c4b978f02bce4330849f118aa853",
  "tree": "3e820f805fc129004371081baa4d7c8616724c01",
  "parents": [
    "c0b79c5a398f4eec51ef92784e9d940febdccc52"
  ],
  "author": {
    "name": "Jan Tattermusch",
    "email": "jtattermusch@users.noreply.github.com",
    "time": "Tue Jun 02 09:26:25 2020 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jun 02 00:26:25 2020 -0700"
  },
  "message": "Overcome the `ref struct` limitation for pre-roslyn compilers by introducing GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE for generated code (#7490)\n\n* enable compatibility mode in codegen\r\n\r\n* regenerate protos\r\n\r\n* improve readability\r\n\r\n* more robust way of figuring out path to old C# compiler\r\n\r\n* add recent C# changes",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "253e47b4c8e427e914651af1b0e5d56b43db8962",
      "old_mode": 33188,
      "old_path": "CHANGES.txt",
      "new_id": "069cd6d55736ff159f82debe2511b9f9fbed3072",
      "new_mode": 33188,
      "new_path": "CHANGES.txt"
    },
    {
      "type": "modify",
      "old_id": "39c777c90569b14c258dbe3f74c1f424f06b1a87",
      "old_mode": 33188,
      "old_path": "Makefile.am",
      "new_id": "8778b17cee4664c38c993fd7094801c8adf401b6",
      "new_mode": 33188,
      "new_path": "Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "3b1da4d613a342a5717d9a50d6e3095868e1cef3",
      "old_mode": 33188,
      "old_path": "csharp/src/AddressBook/Addressbook.cs",
      "new_id": "1b1c1b6c1f5578da2f01629b2fa494d8e0b6e907",
      "new_mode": 33188,
      "new_path": "csharp/src/AddressBook/Addressbook.cs"
    },
    {
      "type": "modify",
      "old_id": "291a585ca865bfba0c661094c1f96ec07aa52cd4",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Benchmarks/BenchmarkMessage1Proto3.cs",
      "new_id": "6a213346a664b1ca270a61c8a1d2891c6ed2074a",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Benchmarks/BenchmarkMessage1Proto3.cs"
    },
    {
      "type": "modify",
      "old_id": "456edbf41c31fc15cd00d41e48a14957c5dda74e",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Benchmarks/Benchmarks.cs",
      "new_id": "ce2248aed6b5956edff2345cc1dc263138b1d6ed",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Benchmarks/Benchmarks.cs"
    },
    {
      "type": "modify",
      "old_id": "76e95d6edfcf68edfff089a4d98c934be69a2eaf",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Benchmarks/WrapperBenchmarkMessages.cs",
      "new_id": "95f613e1ba7f4327abfabcf2095f7b36742b163c",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Benchmarks/WrapperBenchmarkMessages.cs"
    },
    {
      "type": "modify",
      "old_id": "f9bda13c609a490d0d36718f44dd82c0d3056353",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Conformance/Conformance.cs",
      "new_id": "2c0846643ed60279fdb9b4b49a8b4935665624f8",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Conformance/Conformance.cs"
    },
    {
      "type": "modify",
      "old_id": "8d2060593d3c0b3c75359b7c03e61d34df9bdf63",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/MapUnittestProto3.cs",
      "new_id": "308ccbd649d99f223ae596af1958a00e9dc7cdf5",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/MapUnittestProto3.cs"
    },
    {
      "type": "modify",
      "old_id": "bef3645874811b951efff8311861db3bb1fbee7c",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/TestMessagesProto2.cs",
      "new_id": "eb22955dc34c156e2f84f7936b991a5998d8ee0d",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/TestMessagesProto2.cs"
    },
    {
      "type": "modify",
      "old_id": "465d5e804c47efa05c0b9ed4c07979f3adde49e1",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/TestMessagesProto3.cs",
      "new_id": "41bc006cb16213de46119b6bfa8c3ceb4f98ca57",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/TestMessagesProto3.cs"
    },
    {
      "type": "modify",
      "old_id": "9b5825a92741d02c85ec5e0cca6394836addf267",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/Unittest.cs",
      "new_id": "373f569df32c284ce7cd80cf76e2824a22c55bb7",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/Unittest.cs"
    },
    {
      "type": "modify",
      "old_id": "818748b298565199d16c08c370e4e6a0c577c82a",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestCustomOptionsProto3.cs",
      "new_id": "26455da9069ec7f66afcb43c63dfc5b0e6128bfc",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestCustomOptionsProto3.cs"
    },
    {
      "type": "modify",
      "old_id": "1cddcd82cef4eb00b588f3b4f287651922139665",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestImport.cs",
      "new_id": "6ac9f110693ef649cd3eb7c87ab755ff808111be",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestImport.cs"
    },
    {
      "type": "modify",
      "old_id": "bcd27bf2e1e42f5db0ada1c43ae63282ce752ddc",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestImportProto3.cs",
      "new_id": "99575b1a3dfe8b70926ee9aa55d24fd8e9951085",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestImportProto3.cs"
    },
    {
      "type": "modify",
      "old_id": "6b35c107d677e0ebb216f133ee671ed85c16afa1",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestImportPublic.cs",
      "new_id": "9bdcf1d686b569354eaec9a4448f9983bee48b9c",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestImportPublic.cs"
    },
    {
      "type": "modify",
      "old_id": "664c66679379970b39b3a3c48461c3954f1739a2",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestImportPublicProto3.cs",
      "new_id": "dba9165f44903949d7c5688d4739b714996a6990",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestImportPublicProto3.cs"
    },
    {
      "type": "modify",
      "old_id": "bede87ab5747b648fd9dce6b267a32328a4c61eb",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestIssue6936B.cs",
      "new_id": "660dbbdda3035e35a16a9404c6464a60f2b1e9c4",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestIssue6936B.cs"
    },
    {
      "type": "modify",
      "old_id": "e86780f70e0505249e893c9d5b0ecde6134b55f1",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestIssue6936C.cs",
      "new_id": "b7498d6f238a6ef688e976f9e3d89ceef20674a6",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestIssue6936C.cs"
    },
    {
      "type": "modify",
      "old_id": "68884e1961227bf21ab772eb618efe34d925ebbb",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestIssues.cs",
      "new_id": "f5c46a95038ec65a9c8eea401fbe460032f7c951",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestIssues.cs"
    },
    {
      "type": "modify",
      "old_id": "5d0ea8672d1a3788447022f9a4f109e97cf4716d",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestProto3.cs",
      "new_id": "468e48bd050f78b1bbeb7941b42d735c8e244daf",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestProto3.cs"
    },
    {
      "type": "modify",
      "old_id": "21e55f72d4063b2e045a772794f50d04d7b27c5c",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestProto3Optional.cs",
      "new_id": "c8cd7f7aa320fdc4aedd23cf60e2bf4f7a6f1c58",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestProto3Optional.cs"
    },
    {
      "type": "modify",
      "old_id": "e466d540432fc07971c3633dc91fec46e21dbff5",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestSelfreferentialOptions.cs",
      "new_id": "4365368acc1e28dcb4d9cbdcf2a9edbfc907bd3d",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestSelfreferentialOptions.cs"
    },
    {
      "type": "modify",
      "old_id": "c67187e7fbae417b82e02ebaf524c53e5fcdcf6c",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestWellKnownTypes.cs",
      "new_id": "30c906cd40629a1b50096d6b28cb7f0cf0d3dd2f",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestWellKnownTypes.cs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f2d9a2d4e2e40ad897761dce6914c614d899f59e",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test/RefStructCompatibilityTest.cs"
    },
    {
      "type": "modify",
      "old_id": "3c6e82b9cc6babae53c6505f22abd66f49dfb21f",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/Reflection/Descriptor.cs",
      "new_id": "fda56764e0a336fb6fdd81b08ed7b71128aa6a17",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/Reflection/Descriptor.cs"
    },
    {
      "type": "modify",
      "old_id": "c4e744706c08215c4faf0ebbaeef815751555121",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/WellKnownTypes/Any.cs",
      "new_id": "fc23560f8af5575170a93ed798b12d9b89de6950",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/WellKnownTypes/Any.cs"
    },
    {
      "type": "modify",
      "old_id": "1f29224916de5a2a60cb3f1a3d690226da5f2b27",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/WellKnownTypes/Api.cs",
      "new_id": "e8f1a50e29e2f8a7e2681bee7e640bf52af1f5d6",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/WellKnownTypes/Api.cs"
    },
    {
      "type": "modify",
      "old_id": "804b82f0fab006bf0871889f7600f2a8ea54ca41",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/WellKnownTypes/Duration.cs",
      "new_id": "8ef1b3778b27844be038462925e47efa3a6703e4",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/WellKnownTypes/Duration.cs"
    },
    {
      "type": "modify",
      "old_id": "f73c345dfb14ad57e2304d25fb2c53ca02279bd6",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/WellKnownTypes/Empty.cs",
      "new_id": "ff04940390cc20a23eb09466dfbf868bc7e0400c",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/WellKnownTypes/Empty.cs"
    },
    {
      "type": "modify",
      "old_id": "25a2f050a18866c2fb91fd427d3a74ec20b60b0f",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/WellKnownTypes/FieldMask.cs",
      "new_id": "72c049f709af58dd5082224888f04a159606fab2",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/WellKnownTypes/FieldMask.cs"
    },
    {
      "type": "modify",
      "old_id": "99d40a5be084e813ae6f23a45bbb63636ae33519",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/WellKnownTypes/SourceContext.cs",
      "new_id": "dbfc8a99c8db9ed573fc69b44cfdf074f93b081a",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/WellKnownTypes/SourceContext.cs"
    },
    {
      "type": "modify",
      "old_id": "84057422c2438878c958766e2ff3bbb783b59686",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/WellKnownTypes/Struct.cs",
      "new_id": "2ba1b1cc5c1fe5babb9821f167fc3f2ea149d883",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/WellKnownTypes/Struct.cs"
    },
    {
      "type": "modify",
      "old_id": "31cbe95b89004510ac32bf4d32215c7d98833890",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs",
      "new_id": "208cd26fe7efcb80c01c7046c9394fb7d03b9e2f",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs"
    },
    {
      "type": "modify",
      "old_id": "3c074f85ec62d26f5b53eaefe4d1bfcd2a04a7d8",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/WellKnownTypes/Type.cs",
      "new_id": "453ff8dd6de69dd769dec48d12f8b903330d13aa",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/WellKnownTypes/Type.cs"
    },
    {
      "type": "modify",
      "old_id": "41313fc25e08caf6e5712aeefc52e9a9ab679fc8",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/WellKnownTypes/Wrappers.cs",
      "new_id": "fa3458cf3d38bc1b9c73dc7cf8f174cb7488e575",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/WellKnownTypes/Wrappers.cs"
    },
    {
      "type": "modify",
      "old_id": "c69e24807b517e1e62467799393f6539f66bbc93",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_field_base.cc",
      "new_id": "7d00402bca8f3c2a6f7d8b9417d10a4e3f11047b",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_field_base.cc"
    },
    {
      "type": "modify",
      "old_id": "594461da784586d96b5e3b820acf7190a773116a",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_field_base.h",
      "new_id": "022ba2156598205b5bb5a783093a6752ce4a4069",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_field_base.h"
    },
    {
      "type": "modify",
      "old_id": "9f3db7685193d5e0951ae56e58403fba319994a4",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_map_field.cc",
      "new_id": "472aba63ed0f17f60557609d337b4b20fa98ffc1",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_map_field.cc"
    },
    {
      "type": "modify",
      "old_id": "b920b9f2257bf11f03cbb85ff8959a0bec638666",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_map_field.h",
      "new_id": "5054c94cc5a0403cf0dc6245682d6603f59d4ff9",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_map_field.h"
    },
    {
      "type": "modify",
      "old_id": "4ff0c7b17a5340dbbdc8fe02110076497152d1f5",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_message.cc",
      "new_id": "e742fc984b37057a269299febb3fe53bcbabd298",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_message.cc"
    },
    {
      "type": "modify",
      "old_id": "5642dc88120c8ea7f5ad5d48a2edb2e6f221a83d",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_message.h",
      "new_id": "dde85e039458eb1c4742b03c9a0e1116d5c3165f",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_message.h"
    },
    {
      "type": "modify",
      "old_id": "aae7091c6f38ccdcfe8b6d1da9177e0db17a895b",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
      "new_id": "402e44c2782a1558d1203d424d560c74b1e84d11",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc"
    },
    {
      "type": "modify",
      "old_id": "c7a632a17d4fc09a89b7d0e66c4f0b257a36e6ef",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h",
      "new_id": "4ce13e646d0c6fe308183e033775c49c3197a0de",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h"
    },
    {
      "type": "modify",
      "old_id": "2e2cfa8fae55a2b01def122b15cd5369af7c02ce",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
      "new_id": "448374096285e58ba2eb020096bde002192244a9",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc"
    },
    {
      "type": "modify",
      "old_id": "74f6874df263ab6e2c90b2b6f160797291b6df11",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h",
      "new_id": "2cf33a4752274b87d31b0e9aeeead30508d49d4f",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h"
    },
    {
      "type": "modify",
      "old_id": "d4ff302543bb4d1e0c8ba8d65b14bc6ea782520e",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
      "new_id": "923121082657c4e18a7a103eefcd3325e2966a13",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc"
    },
    {
      "type": "modify",
      "old_id": "2a3be48168094babc0d92cea480b50905123f17d",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h",
      "new_id": "58db62d01c6772d7f3d7e19abecfb649a6994c92",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h"
    },
    {
      "type": "modify",
      "old_id": "cada81cd9ae8a02fb879ea8c2e6fffab22cbbb5b",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
      "new_id": "24381dd233446c857dd9e7118e387a19700d72e3",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc"
    },
    {
      "type": "modify",
      "old_id": "394e27de595d5511b0a5e29baf92af1b0f3e4e9f",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/csharp/csharp_wrapper_field.h",
      "new_id": "438080d5b9cd1a4730b00b66c1b51e3ec22c4596",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/csharp/csharp_wrapper_field.h"
    }
  ]
}
