)]}'
{
  "commit": "da116c3771bf4a398a43f44e069195ef1c9688ef",
  "tree": "7c041d9ee46379b51d7f9cba13f78b78161337fc",
  "parents": [
    "4bd1920723d7b7c925de087aa32e2187708897f7"
  ],
  "author": {
    "name": "lmilewski",
    "email": "lmilewski@google.com",
    "time": "Fri Nov 04 18:21:45 2016 +0000"
  },
  "committer": {
    "name": "Joe Tsai",
    "email": "joetsai@digital-static.net",
    "time": "Mon Nov 14 16:59:28 2016 -0800"
  },
  "message": "proto: generate Get methods for fields of basic type in proto3\n\nGiven proto3 schema:\n\n  message Foo {\n    string some_value \u003d 1;\n  }\n\n  message Bar {\n    Foo foo \u003d 1;\n  }\n\n  message Baz {\n    Bar bar \u003d 1;\n  }\n\nAccessing baz.bar.foo.SomeValue currently requires this code:\n\n        if f :\u003d baz.GetBar().GetFoo(); f !\u003d nil {\n                fmt.Printf(\"value was %v\\n\", f.SomeValue)\n        }\n\nAfter the CL, it becomes:\n\n        fmt.Printf(\"value was %v\\n\", baz.GetBar().GetFoo().GetSomeValue())\n\nThere are downsides to generating more code:\n   - all things equal, less code is better\n   - larger API surface\n\nThe upsides are:\n - consistency with proto2 API (proto2 and proto3 can be mixed. Keeping API consistent is important)\n - easier to explain API - all fields have Get method. No exceptions.\n - reduced user confusion - questions about this come up frequently\n\ntesting:\n  - added a new test\n  - inspected a diff for an arbitrarily chosen schema\nPiperOrigin-RevId: 138212965\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "462f8055c30935746a13803af67c24c1b502e251",
      "old_mode": 33188,
      "old_path": "proto/proto3_test.go",
      "new_id": "735837f2de0ecbfd148ec1aaae66832179acb1ee",
      "new_mode": 33188,
      "new_path": "proto/proto3_test.go"
    },
    {
      "type": "modify",
      "old_id": "0e5d2b70d9a3e25eaac334741f1c64bdc606bf0f",
      "old_mode": 33188,
      "old_path": "protoc-gen-go/generator/generator.go",
      "new_id": "5052076e93b5fbfce4134c31860fe1ba04023af0",
      "new_mode": 33188,
      "new_path": "protoc-gen-go/generator/generator.go"
    }
  ]
}
