)]}'
{
  "log": [
    {
      "commit": "05fd20c797c0aab700183131023130e45a748a47",
      "tree": "8572db00e4fa83d6569aa9d2f4d3df61aab472d9",
      "parents": [
        "5725481f1e4cb2e2042b5469b5863023556cf2dd",
        "b50b8c888618c4da4bde8490206d1706a5882542"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 04 04:08:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 04 04:08:22 2017 +0000"
      },
      "message": "Merge changes Ia7200bf0,I86999bb7\n\n* changes:\n  versioner: fix leak.\n  versioner: add symlink for dependencies.\n"
    },
    {
      "commit": "d10d3eece155670d5922b27f99f92c487b6682a4",
      "tree": "9e75f7d8181c8b95a46050dde40551c94723bbd6",
      "parents": [
        "fd478a8cba97680974494bc72727fba6d8136805"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 28 19:32:13 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 01 16:31:51 2017 -0700"
      },
      "message": "versioner: disable container overflow checks\n\nTemporary workaround.\n\nBug: 37775238\nTest: ASAN_OPTIONS\u003d SANITIZE_HOST\u003daddress m\nChange-Id: If9e9df45d83f8412caafcece87337a5c9df3a1c8\n"
    },
    {
      "commit": "b50b8c888618c4da4bde8490206d1706a5882542",
      "tree": "cf47be17871fe84e11a2d65d9898a33d7cc4442d",
      "parents": [
        "0be1dabfc66e884c91bb93d4e96c10f3577385c0"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 27 17:22:52 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 27 17:25:32 2017 -0700"
      },
      "message": "versioner: fix leak.\n\nReplace an intentional leak of a buffer allocated by realpath with a use\nof android::base::Realpath.\n\nBug: http://b/37727515\nTest: tools/versioner/run_tests.py\nChange-Id: Ia7200bf0e1c485050e860e21ff15784941366bec\n"
    },
    {
      "commit": "ff6c8de4f51536855a05b71ff336257a36d7c215",
      "tree": "9cb372ce38225bfa50d65f34b789cf691e4938de",
      "parents": [
        "627ed9162538d847ea4e530fd443570d37f57d65"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Apr 20 09:08:11 2017 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Apr 20 14:37:56 2017 -0700"
      },
      "message": "Remove unused lambda captures\n\nClean up. This fixes build under -Wunused-lambda-capture.\n\nTest: build\nChange-Id: Ic12aa39e14ed55dbb28cf55303f9c4258179037d\n"
    },
    {
      "commit": "d744a9bcd5128b106ba2f4cf991d4e6a510751e1",
      "tree": "82f74d961467e566390f821dc68abf89ea739496",
      "parents": [
        "3fcf747f1daefcd7995a3c22f42e9f5c987e7142"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Apr 03 11:24:48 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Apr 03 12:41:35 2017 -0700"
      },
      "message": "versioner: fix indentation in usage.\n\nTest: versioner -h\nChange-Id: I96cba65e53c564c8f47714c74d300e8f3dee7e82\n"
    },
    {
      "commit": "0a284f5c05f36c7be570f1a2750eba79fa883291",
      "tree": "3aa5e5d761af135745c1b543af6ca889d8c62bb7",
      "parents": [
        "f7e793ef7fcfc8f20be3cadd2f5a233151d4b9c9"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Dec 15 13:56:00 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Dec 15 13:56:00 2016 -0800"
      },
      "message": "versioner: start using C++17.\n\nBug: None\nTest: python run_tests.py\nChange-Id: I10101d26b7816a83445f25b33b97ed47d42fd135\n"
    },
    {
      "commit": "9f9200c2ee7e5583282f4151ff9c18f1f1bcbcb9",
      "tree": "3792f29dd17de3f7ed7945cb34137e2741d5193a",
      "parents": [
        "2796894c98e8ef9639c7781cb343ce23cbd3781a",
        "acc3d80edf9912d0c30f951e498959b9ff74f0e2"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Nov 22 00:51:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 00:51:14 2016 +0000"
      },
      "message": "Merge \"versioner: extract strict warnings out of -v into its own flag.\""
    },
    {
      "commit": "2796894c98e8ef9639c7781cb343ce23cbd3781a",
      "tree": "147fa29d23e8b39668f1e213b799420714093c52",
      "parents": [
        "5fabe027571627bf72eec1e23bfbb3a69845480a",
        "338cf129630ca5839f1ab695b04f7afbe18bb92d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Nov 22 00:50:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 00:50:59 2016 +0000"
      },
      "message": "Merge \"versioner: use a single work queue.\""
    },
    {
      "commit": "acc3d80edf9912d0c30f951e498959b9ff74f0e2",
      "tree": "0ac8f0bbf4cc479744da4caad3ed75134c12f689",
      "parents": [
        "338cf129630ca5839f1ab695b04f7afbe18bb92d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Nov 09 18:22:44 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Nov 17 18:12:21 2016 -0800"
      },
      "message": "versioner: extract strict warnings out of -v into its own flag.\n\nBug: None\nTest: versioner -v; versioner -s\nChange-Id: I8f6ac7064c6f05de0811677f7fcfce929a2568c1\n"
    },
    {
      "commit": "338cf129630ca5839f1ab695b04f7afbe18bb92d",
      "tree": "72f3aab6dea788568808228b9e22f33c2fb4bb76",
      "parents": [
        "8945d5e43a25737f3f888a90742cc918b1124a05"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Nov 09 18:01:41 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Nov 17 18:11:57 2016 -0800"
      },
      "message": "versioner: use a single work queue.\n\nPreviously, each thread was assigned a fixed list of work, and the main\nthread would block until every thread was finished, leading to most\ncores sitting idle for the last few hundred milliseconds while a few\nparticularly long running threads would keep working. Use a single work\nqueue to evenly distribute load across the threads.\n\nBug: http://b/32748936\nTest: python run_tests.py\nChange-Id: I80e231ece3b95e2721a32f658905841b89a8dc3b\n"
    },
    {
      "commit": "3091f5a06e82186bbf8cfde3498fa9aef4d389ee",
      "tree": "17e571f7c6da4054aabc8d7372255e6cf1442134",
      "parents": [
        "8945d5e43a25737f3f888a90742cc918b1124a05"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Nov 16 17:01:57 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Nov 16 17:01:57 2016 -0800"
      },
      "message": "versioner: ignore non-header files.\n\nDon\u0027t try to compile non-headers (vim swap files, etc.) that happen to\nbe in the header directory.\n\nBug: none\nTest: manually created a file in libc/include\nChange-Id: I2c1647ec7174dc617898dc2f07c9a80a08b69c72\n"
    },
    {
      "commit": "b3321c961452f69650e4a6bd2a7db317a80b3234",
      "tree": "9471f536d800a1ca4bb71a638edd11eb1a2496bd",
      "parents": [
        "cd9ce19e9ce34db6201bdb054c40c3b9e766d2d8",
        "78b8a1430debfb9361e425e52e8366409b9e5cd2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 15 00:54:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 15 00:54:09 2016 +0000"
      },
      "message": "Merge changes I72d37b7c,I7d254a10,I2e967acf\n\n* changes:\n  versioner: use a virtual filesystem for input files.\n  versioner: cache -cc1 flags generated by the clang Driver.\n  versioner: refactor to use CompilerInstance directly.\n"
    },
    {
      "commit": "78b8a1430debfb9361e425e52e8366409b9e5cd2",
      "tree": "63054645e21f43fc7626156843a511398a61194e",
      "parents": [
        "b5c496346f19cba410b3191b9c3297507bba854a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Nov 09 01:00:41 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Nov 09 18:12:10 2016 -0800"
      },
      "message": "versioner: use a virtual filesystem for input files.\n\nUse an InMemoryFileSystem to store and share input files across\ncompilations.\n\nThis improves the result of `time versioner` further, from:\n    versioner  109.12s user 17.43s system 2433% cpu 5.201 total\nto:\n    versioner  112.20s user 1.38s system 2416% cpu 4.700 total\n\nBug: http://b/32748936\nTest: python run_tests.py\nChange-Id: I72d37b7c30850b8399cc40338247700fe3e7b2f9\n"
    },
    {
      "commit": "b5c496346f19cba410b3191b9c3297507bba854a",
      "tree": "f5e01af0d1c789c719a83fd4c89ec8f3f0b0aafe",
      "parents": [
        "16016df79f846d6d21266c3b1dce1e7c24dc4be1"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Nov 08 22:21:31 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Nov 09 18:10:15 2016 -0800"
      },
      "message": "versioner: cache -cc1 flags generated by the clang Driver.\n\nProfiling showed that majority of time spent by versioner was being\nspent in the x86 and x86_64 driver statting random files in /usr/lib,\nlooking for a toolchain. Hardcode a list of per-target flags which\ncorrespond to a subset of the ones generated by clang, and use those\ninstead of calling out to Driver.\n\nThis changes the result of `time versioner` from:\n    versioner  156.57s user 1180.08s system 4109% cpu 32.525 total\nto:\n    versioner  109.12s user 17.43s system 2433% cpu 5.201 total\n\nBug: http://b/32748936\nTest: python run_tests.py\nChange-Id: I7d254a105bf1a283cbba0546321b04e308e703d1\n"
    },
    {
      "commit": "16016df79f846d6d21266c3b1dce1e7c24dc4be1",
      "tree": "848d465210b468dbcdb9b94a2519b40a256bf323",
      "parents": [
        "42eb0b255507ca4d3b4e94b7756c15ab742261c0"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Nov 07 18:27:16 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Nov 09 13:50:07 2016 -0800"
      },
      "message": "versioner: refactor to use CompilerInstance directly.\n\nThis will make it easier to switch over to a virtual filesystem,\nwhich should drastically improve performance.\n\nThis also fixes an issue with warning/error reporting.\n\nBug: http://b/32748936\nTest: python run_tests.py\nChange-Id: I2e967acf75db29c95f3a03f4f94cccd22c367ad5\n"
    },
    {
      "commit": "1a176de2f15392c4789b071d5f05ed6950807a0e",
      "tree": "1afc5fb6af2a5136fea70d01247e2f83cd0f3546",
      "parents": [
        "a00e672361893fdaf7e87577e75290523c07d27d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Nov 04 13:15:11 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Nov 04 13:16:29 2016 -0700"
      },
      "message": "versioner: allow static inlines that don\u0027t conflict.\n\nBug: http://b/32664285\nTest: python run_test.py\nChange-Id: I9d050e545390eccd82661325c0ec58055f5f28a3\n"
    },
    {
      "commit": "dfb74c5f597542c7587a4144eb31b143d82a2281",
      "tree": "6518b6dbd451d3359c9daec78867a66481dc77fd",
      "parents": [
        "bd839d100d1c4802cf53f3d27bb73e6032719762"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 24 12:53:17 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 24 12:57:55 2016 -0700"
      },
      "message": "Minor copyright header unification.\n\nRegenerating the NOTICE file the other day left me scratching my head at\nvarious \"how do they differ?\" cases, resolved by this patch.\n\nTest: N/A\nChange-Id: I4230bfa1d7ec842a4b9fb8c73dd3b39443d74054\n"
    },
    {
      "commit": "ac3e5641428512c12ff2c463005ab29b026a928c",
      "tree": "2564871000f3897a815e765d7c34886969b41dab",
      "parents": [
        "81b4aadb4857f351915b6fc215a73baacc90d22a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 15 14:16:15 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 15 14:21:28 2016 -0700"
      },
      "message": "versioner: turn on -Wundef.\n\nPoking around with -Wundef exposed a pretty horrifying bug, so we\nshould probably keep it turned on.\n\nBug: http://b/31496165\nChange-Id: Iada279eec91ded0d59ff3841d5a3ce1a36e34c3a\n"
    },
    {
      "commit": "bb96628f487aaa55ce861d5d72c9c38d5943c9a6",
      "tree": "46aaaac0add4344a4177843c54fe534eb0d82374",
      "parents": [
        "76fcad2a6f6b6633c49f4f0b703ef490d2d127fd"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Sep 14 14:21:56 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Sep 14 14:22:27 2016 -0700"
      },
      "message": "versioner: turn on -Wall -Wextra -Werror.\n\nChange-Id: Ica47d0fa671934a1ea193869265de8986b012a58\nTest: mma \u0026\u0026 versioner\n"
    },
    {
      "commit": "a77b3a9464641ba813018b9cab0555d9d800d65e",
      "tree": "d3f90e5a9d9d4e3983b698c6b3b00ece3aefd064",
      "parents": [
        "3b2d331e77143ce63ad7f404ab6669c03178eff4"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Aug 15 16:39:27 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Aug 15 16:43:13 2016 -0700"
      },
      "message": "versioner: handle _FILE_OFFSET_BITS\u003d64.\n\nCompile headers with both -D_FILE_OFFSET_BITS\u003d32 and -D_FILE_OFFSET_BITS\u003d64.\n\nBug: http://b/30170081\nChange-Id: I92651e075cc69bdc1a2581f99892c9a7fdcdb35b\nTest: python run_tests.py\n"
    },
    {
      "commit": "f8592a3ff3d452b7d784d34814e5d04c20348343",
      "tree": "7b7b981e5c74280552b875bdbd4494c3000b38d9",
      "parents": [
        "8feba83242e32693b1853f0d6f141b7736008d4a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jul 26 18:58:27 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Aug 08 16:39:07 2016 -0700"
      },
      "message": "versioner: add support for preprocessing headers.\n\nBug: http://b/30170081\nChange-Id: I9b662ca9e0fa3a1f9c0211594e851f5f9bef7266\n"
    },
    {
      "commit": "566735df35488b332bedb2e384221c08c3ec686c",
      "tree": "44b6e4b8aa9143212fb9afe157a19057f2b7b24a",
      "parents": [
        "16057886d7aa2e30536908ae72451ebf42661080"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Aug 02 15:07:32 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Aug 08 16:39:07 2016 -0700"
      },
      "message": "versioner: purge iostreams.\n\nChange-Id: I1b16a4b5c4a8a1333f05636c8c67890d8ce1a090\n"
    },
    {
      "commit": "bfb6bae9fb5ef42e4f9ae2847f30f41938c04900",
      "tree": "e75bc213342719cd3f803db5d27f4f21d9601fe0",
      "parents": [
        "681f6b59d26c7c9470bc681b0ca0b43c3d0835db"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jul 15 17:25:21 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Aug 08 16:39:07 2016 -0700"
      },
      "message": "versioner: replace availability attributes with annotate.\n\nMajor refactor to use __attribute__((annotate)) to be able to keep\ntrack of the semantic differences between __INTRODUCED_IN(x) and\n__INTRODUCED_IN_X86(x), for use in the upcoming preprocessor.\n\nBug: http://b/30170081\nChange-Id: I6496a8c40ba7f4553de9a2be0bbddcf37c813937\n"
    },
    {
      "commit": "d8c77257ea0b0b3a4f92f8ae20b230b545456fa5",
      "tree": "5603d67f343ea8c3fc96dcc6fa42916a4692f99d",
      "parents": [
        "4af829acb7bedbc2d08dfde0d099c658a1aa7567"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 03 13:54:28 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 03 15:01:19 2016 -0700"
      },
      "message": "versioner: whitelist atexit, turn on symbol checking by default.\n\nChange-Id: I32e726c74ee618ace3a4329d46408a42732a8d9d\n"
    },
    {
      "commit": "958f3b31c49e1975117898a54d6e7c1fe2b386ec",
      "tree": "a226bca1c97221743727d9421fe672d368e404e4",
      "parents": [
        "173e7c07539af0910d170cd17385cba6762cfbc8"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 03 13:44:00 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 03 15:01:19 2016 -0700"
      },
      "message": "versioner: fix false positive with functions only available as inlines.\n\nChange-Id: I09cc335b4006c6ceafcbd1bec9e50161f8262942\n"
    },
    {
      "commit": "173e7c07539af0910d170cd17385cba6762cfbc8",
      "tree": "ce1b645e69d8b9f510c10ea2805b9bcc67b04c23",
      "parents": [
        "658dbd920d8e8d17723e014d886e43615107a59a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 03 13:38:00 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 03 15:01:19 2016 -0700"
      },
      "message": "versioner: improve error output slightly.\n\nPrint [introduced \u003d 9, deprecated \u003d 10, obsoleted \u003d 11] instead of\n[9,10,11].\n\nChange-Id: Ifb8a66abbcec92aa13086d220af7ee6fa17b0897\n"
    },
    {
      "commit": "d67dbf003e6b203a4ec41d01081190d3e40f00e2",
      "tree": "8a1a7e3532876d06f805376ea7dda0efb28571e5",
      "parents": [
        "9b5af7ad5e5b36d751f152382971b034161755e5"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jun 02 15:21:14 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 03 15:01:18 2016 -0700"
      },
      "message": "versioner: ignore functions that are __INTRODUCED_IN_FUTURE.\n\nBug: http://b/28178111\nChange-Id: I8026181e08ed8f2d59b31a37adcf8b469fb6bdaf\n"
    },
    {
      "commit": "9b5af7ad5e5b36d751f152382971b034161755e5",
      "tree": "d352634230bcbebbc411783867e440e6e57356a3",
      "parents": [
        "62aaf8f8fe123e34ec0f66b0cd51ec24e304c9b5"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jun 02 14:29:13 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 03 15:01:18 2016 -0700"
      },
      "message": "versioner: autodetect paths when no specified.\n\nSearch for the header/dependency/platform directories in a hard-coded\npath relative to $ANDROID_BUILD_TOP when they\u0027re not specified.\n\nChange-Id: I476385cfc0247e3b2009348ec37c1810a0e9a7f7\n"
    },
    {
      "commit": "62aaf8f8fe123e34ec0f66b0cd51ec24e304c9b5",
      "tree": "f2c71111d1910cf6a9c116beac2a43ddf160ce09",
      "parents": [
        "99a84c83169a4443d844836bf5d892ec55130448"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jun 02 14:27:21 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 03 15:01:18 2016 -0700"
      },
      "message": "versioner: improve usage messages.\n\nDon\u0027t spew all of usage when called improperly, and add a -h option\nthat exits cleanly.\n\nChange-Id: I1a4517edce75afe0f9a80bc8d6c81353d6c12e99\n"
    },
    {
      "commit": "bf8a285e64055ffd7e0c8b91519b75ff9ad94184",
      "tree": "ed209dd25479e657ab2ca0b311aab46d62da75aa",
      "parents": [
        "46b44160e9e4c466be0faf1bb8d6ec70ecc83273"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri May 27 11:59:09 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jun 02 13:40:36 2016 -0700"
      },
      "message": "versioner: introduce.\n\nAdd a clang-based tool to inspect header availability attributes and\nverify them against the NDK platform definitions.\n\nBug: http://b/28178111\nChange-Id: I1bb1925a620e98cc9606cb5a3360b1224c700bd0\n"
    }
  ]
}
