)]}'
{
  "commit": "9ed6d4da3710daae65cdc60719ebff79a472b648",
  "tree": "b0b8546db228e95ac55f9f4a9b8bc3f4db7001fd",
  "parents": [
    "ebf3eb630de34105432fb998492346929b577dcb"
  ],
  "author": {
    "name": "Jon Skeet",
    "email": "jonskeet@google.com",
    "time": "Mon Sep 28 17:28:02 2015 +0100"
  },
  "committer": {
    "name": "Jon Skeet",
    "email": "jonskeet@google.com",
    "time": "Thu Oct 01 13:07:47 2015 +0100"
  },
  "message": "Support ToString in RepeatedField and MapField.\n\nThis changes how we approach JSON formatting in general - instead of looking  at the field a value came from, we just look at the type of the value. It\u0027s possible this *could* be slightly inefficient, but if we start caring about JSON performance deeply, we\u0027ll probably want to rewrite all of this anyway. It\u0027s definitely simpler this way.\n\nWhen we support dynamic messages, we\u0027ll need to modify JsonFormatter to handle enum values, as they won\u0027t come be \"real\" .NET enums at that point. It shouldn\u0027t be hard to do though.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "29c4c2a9c1271e07f1161ab8aa748f9672676bf6",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test/Collections/MapFieldTest.cs",
      "new_id": "ba82c0e825086615ce5edf10ce2fd01c2b82d22c",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test/Collections/MapFieldTest.cs"
    },
    {
      "type": "modify",
      "old_id": "8c804fdd22863de1495bfd07ebb3649c240e846b",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test/Collections/RepeatedFieldTest.cs",
      "new_id": "8ed54cfb48458011a135b9dd9617efa91f687df8",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test/Collections/RepeatedFieldTest.cs"
    },
    {
      "type": "modify",
      "old_id": "0fa63bef95b4e8886b602985ba22fd205fbbdf6c",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/Collections/MapField.cs",
      "new_id": "c0ed28ae57def0e511e9764097825fc19b6aa596",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/Collections/MapField.cs"
    },
    {
      "type": "modify",
      "old_id": "d9ced6ec53c794d622f34adad05b501867ca9169",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/Collections/RepeatedField.cs",
      "new_id": "e3f65afea77473fde217e2eff2a89c2476f2e0ea",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/Collections/RepeatedField.cs"
    },
    {
      "type": "modify",
      "old_id": "12bbdfdde921cfacf310828468e38014418e2f54",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/JsonFormatter.cs",
      "new_id": "3f9bd478745fb5c21b0841ea517a902426c0767f",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/JsonFormatter.cs"
    }
  ]
}
