)]}'
{
  "log": [
    {
      "commit": "f629cfdbf6da3409aff177352e9ff41209b4570c",
      "tree": "e59e58924de62f4ff9906a95691f259e94b7fd09",
      "parents": [
        "cda4f2e72f569e0a0d6119c1c75284fd44df79ab"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Dec 12 13:11:26 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Feb 20 13:33:40 2017 +0000"
      },
      "message": "ahat: add support for diffing two heap dumps.\n\nahat now has the option to specify a --baseline hprof file to use as\nthe basis for comparing two heap dumps. When a baseline hprof file is\nprovided, ahat will highlight how the heap dump has changed relative\nto the hprof file.\n\nDifferences that are highlighted include:\n* overall heap sizes\n* total bytes and number of allocations by type\n* new and deleted instances of a given type\n* retained sizes of objects\n* instance fields, static fields, and array elements of modified objects\n\nAlso:\n* Remove support for showing NativeAllocations, because I haven\u0027t ever\n  found it to be useful, it is not obvious what a \"native\" allocation\n  is, and I don\u0027t feel like adding diff support for them.\n* Remove help page. Because it is outdated, not well maintained, and\n  not very helpful in the first place.\n\nTest: m ahat-test\nTest: Run in diff mode for tests and added new tests for diff.\nTest: Manually run with and without diff mode on heap dumps from system server.\nBug: 33770653\nChange-Id: Id9a392ac75588200e716bbc3edbae6e9cd97c26b\n"
    },
    {
      "commit": "cda4f2e72f569e0a0d6119c1c75284fd44df79ab",
      "tree": "1b02caaa7cd270912ecd8cd64205f1c70acfe648",
      "parents": [
        "69ed58348af817176734c5541f41737f00f9a1e9"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Sep 09 09:56:20 2016 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Feb 20 12:56:38 2017 +0000"
      },
      "message": "Refactor ahat\u0027s perflib api.\n\nThis change substantially refactors how ahat accesses heap dump data.\nRather than use the perflib API directly with some additional\ninformation accessed on the side via AhatSnapshot, we introduce an\nentirely new API for accessing all the information we need from a heap\ndump. Perflib is used when processing the heap dump to populate the\ninformation initially, but afterwards all views and handlers go\nthrough the new com.android.ahat.heapdump API.\n\nThe primary motivation for this change is to facilitate adding support\nfor diffing two heap dumps to ahat. The new API provides flexibility\nthat will make it easier to form links between objects in different\nsnapshots and introduce place holder objects to show when there is an\nobject in another snapshot that has no corresponding object in this\nsnapshot.\n\nA large number of test cases were added to cover missing cases\ndiscovered in the process of refactoring ahat\u0027s perflib API.\n\nThe external user-facing UI may have minor cosmetic changes, but\notherwise is unchanged.\n\nTest: m ahat-test, with many new tests added.\nBug: 33770653\n\nChange-Id: I1a6b05ea469ebbbac67d99129dd9faa457b4d17e\n"
    },
    {
      "commit": "932b19ae77b2b15635ea5060baec0ca939d5db86",
      "tree": "75c04a4f24ae5f1078fb58180ce686d5d0d51d52",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Nov 28 16:34:59 2016 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Nov 28 16:34:59 2016 +0000"
      },
      "message": "Use junit-host instead of junit\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: Ia54aeae56f49123885765bc896c00fd363e93c26\n"
    },
    {
      "commit": "ec78c78508fa5ef6bac78ee2face0d30e67cf913",
      "tree": "f9959d9b691d35af9d4940703750523b7b5bd26e",
      "parents": [
        "a8188191477b7b5b01a3c4426c51c48cd55f6678"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri May 13 14:19:37 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Oct 21 16:24:07 2016 +0100"
      },
      "message": "Add support for proguard deobfuscation.\n\nTest: m ahat-test, with obfuscation of test-dump.hprof added.\nBug: 25812772\nChange-Id: I0f257432da570aa146e6bb5c549f014aecc0c326\n"
    },
    {
      "commit": "6928649223312692f9e2401c34dac37510ddbb2f",
      "tree": "19ddf5c68cf9e8c93e0a11cba756ceaed4be72a7",
      "parents": [
        "ad1f0ad512cac82e5db05aa8237608ba8424c130"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Sep 20 10:41:47 2016 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Sep 26 11:44:16 2016 +0100"
      },
      "message": "ahat: Show GC Root Paths.\n\nThe Dominator Path in the objects view is replaced by an augmented\nSample Path from GC Root, which includes non-dominator objects\nalong a sample path and field names.\n\nAlso, use blanks instead of \"0\" in heap tables when the size is 0.\nThis cleans up the pages a little, and conveniently lets us\ndistinguish between dominator and non-dominator objects in the Sample\nPath from GC Root.\n\nTest: m ahat-test, with new InstanceUtils.gcRootPath test added.\n\nBug: 27299030\nChange-Id: I53d75f9dcb3157c2b5b3afc74958711536cd67b6\n"
    },
    {
      "commit": "cd8a057350aceab9ca48a4720aaa21806b041799",
      "tree": "378276e297f3001b0b5698fae2a833da7219572a",
      "parents": [
        "be3a3ee02f148345ba6e1a0361532a3f7e8c0002"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Sep 16 17:11:36 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Sep 16 17:35:21 2016 -0700"
      },
      "message": "Move ART_HOST_TEST_DIR to Android.common_test.mk\n\nI\u0027m improving Kati\u0027s re-run detection, and this $(shell echo $$PPID) now\nnow causes us to reparse all of the makefiles every time, since it\nreally does change on each execution. But if you aren\u0027t running the ART\ntests, this doesn\u0027t actually get used.\n\nSo punt this over to only executing when you\u0027re including the test\nrunner -- it\u0027s not ideal, since you\u0027ll be reparsing the makefiles every\ntime you want to run the tests. Depending on the desired behavior, this\nshould be able to be implemented without depending on the PID of Kati,\nor the test runner can be moved out of the build system, since most of\nthe builds here have moved to Soong now.\n\nBug: 30947985\nTest: Compare build.ninja before and after this change, only change is\n      the valgrind-test-art-target* targets.\nTest: m -j test-art-host\nChange-Id: Ibbc0f20e407bf70bce64d3428be5808d78bdaf91\n"
    },
    {
      "commit": "69272db247cfb99a9060f849762aa6ce3959788e",
      "tree": "e255a6aa7cac2be9b59848aed7b9d546857826a5",
      "parents": [
        "11a59a48474caa818ddf344575aa6afc51f45590"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Aug 05 16:26:57 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Aug 05 16:35:55 2016 -0700"
      },
      "message": "ahat: Target Java 1.7.\n\nSo that users can run ahat with Java 7 without getting unsupported\nmajor/minor version errors.\n\nChange-Id: I76faab19bc1b14c76d5fd6b3ba19fcb07855dfd9\nTest: m ahat-test\nTest: /usr/local/buildtools/java/jdk7/bin/java -jar ahat.jar\nTest: /usr/local/buildtools/java/jdk8/bin/java -jar ahat.jar\nBug: 28303627\n"
    },
    {
      "commit": "c5a0004ac86f976011723c176b589cc99c99e180",
      "tree": "b655557a80b59f35dd84e7ef5f564791a6dfbcb3",
      "parents": [
        "1fe7627d5b29d87f70f1b3fabe4fa7fd81986370"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Jul 01 13:10:56 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jul 06 14:19:16 2016 -0700"
      },
      "message": "Add missing dependency required for ahat-test.\n\nChange-Id: I8f7afc97a82fadcdd2f18032900f2b8d8b2059bf\nTest: rm -r out/ \u0026\u0026 m ahat-test\nTest: rm -r out/ \u0026\u0026 m build-art-host\nTest: rm -r out/ \u0026\u0026 m build-art-host-tests\nTest: rm -r out/ \u0026\u0026 m build-art-target\nTest: rm -r out/ \u0026\u0026 m build-art-target-tests\n"
    },
    {
      "commit": "fa8598dc6ef0358c20109faf58101425bbd80941",
      "tree": "3013d616012c5acfae594e78d91a1ce4d69b1194",
      "parents": [
        "f4849547579504fc660fe601687f7c60242473bb"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Feb 29 21:09:08 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Mar 01 21:02:58 2016 -0800"
      },
      "message": "Remove references to $(ACP)\n\nWe\u0027re changing the implementation of these macros to not use acp.\nInstead of having to keep this in sync, move to using a standard\nprebuilt module. The build system has been updated to explicitly add the\nexecutable bit to prebuilt modules in the EXECUTABLES class.\n\nChange-Id: I29cf4d48619e022b7da65ef2df05a92bed08a456\n"
    },
    {
      "commit": "0524aebba5b96d66ad23805215df6a42e44a6e83",
      "tree": "02e724ee7c7c92e93bfdf22ada64a08d014222c7",
      "parents": [
        "16065ce56394c73c87dcb78ead4164ddc80fddb3"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Oct 12 15:25:30 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Oct 12 15:25:30 2015 -0700"
      },
      "message": "Switch ahat test to use core-optimizing-pic.art.\n\nTo match the recent change to the \u0027art\u0027 script.\n\nChange-Id: I996e562bf967881b30ed3065caf6ce6bf8adc18f\n"
    },
    {
      "commit": "3524472e8f064dbd42e1a35d511a1efe36d2cbf2",
      "tree": "720ff24091021c6c3c6befc3b631d644df5144e9",
      "parents": [
        "d0d11f20811f260453f6dfe2e26d7dbd6ed55f01"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Sep 10 16:45:54 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Oct 01 10:24:03 2015 -0700"
      },
      "message": "Generate an hprof file to test ahat.\n\nThis change sets up the infrastructure to write test cases for ahat\nthat make use of an hprof file automatically generated from a sample\nprogram.\n\nChange-Id: Id11f656afb69c96a26655cc4caeb745ad844f431\n"
    },
    {
      "commit": "b730b78dac047c6d8ead93ad77605bcb7414f5ce",
      "tree": "feda8437b927954bcc849a6c5df6c11d46104355",
      "parents": [
        "24011e738d77dedb28c1b4d6ff34445cc2acc4a7"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jul 15 16:01:58 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Aug 25 09:34:23 2015 -0700"
      },
      "message": "ahat - An android heap dump viewer. Initial checkin.\n\nahat is an android-aware heap dump viewer based on perflib with a\nsimple html interface.\n\nChange-Id: I7c18a7603dbbe735f778a95cd047f4f9ec1705ef\n"
    }
  ]
}
