)]}'
{
  "log": [
    {
      "commit": "c762e90a33ce3cda19ef142dd1120f1087ecd876",
      "tree": "bd47098f938423d72fa0bd5d841b4c30f0d3f9ba",
      "parents": [
        "04c946f4f63bc05a2b566ccc59e78938d517eb24"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Sun Aug 23 13:29:24 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Sun Aug 23 13:29:24 2015 +0300"
      },
      "message": "Add LICENSE file\n"
    },
    {
      "commit": "04c946f4f63bc05a2b566ccc59e78938d517eb24",
      "tree": "24859e749a79f719b784b62582777f782b4e4976",
      "parents": [
        "d65a85cf1c2ab819f48a87e8bb3e03db096fb093"
      ],
      "author": {
        "name": "Mike Wallace",
        "email": "mikewallace@apache.org",
        "time": "Tue Jun 30 21:51:23 2015 +0100"
      },
      "committer": {
        "name": "Mike Wallace",
        "email": "mikewallace@apache.org",
        "time": "Wed Jul 15 11:13:14 2015 +0100"
      },
      "message": "Allow ddoc_cache to open restricted design docs\n\nDesign docs in the authentication DB cannot be opened without an\nadmin context so this commit teaches ddoc_cache to always use\n?ADMIN_CTX when opening documents.\n\nCOUCHDB-2738\n\nThis closes #1\n"
    },
    {
      "commit": "d65a85cf1c2ab819f48a87e8bb3e03db096fb093",
      "tree": "b4a6a56327f01b6ba01ddff625c54143fc8c2401",
      "parents": [
        "54f3eed23b9225fc9b00306ea5a1c4c2b7d9176d"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 11 15:50:31 2014 -0500"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Sun Feb 08 14:08:30 2015 +0000"
      },
      "message": "Allow custom cache objects using callback modules\n\nThis patch allows custom objects derived from design documents to be\nexposed in the ddoc_cache. A custom object is defined by a module\nexporting the recover/1 function which accepts the name of a database\nand returns {ok, term()}. The term will be cached as if it were a design\ndoc. For the sake of simplicity all custom cache objects associated with\na database are evicted when any ddoc in the database changes.\n\nOnce a custom callback module has been defined the object associated\nwith the module can be retrieved via ddoc_cache:open(DbName, Mod).\n\nBugzID: 42707\n"
    },
    {
      "commit": "54f3eed23b9225fc9b00306ea5a1c4c2b7d9176d",
      "tree": "bd08c4ab7339560c10dc6d20666fad5c6514a7cd",
      "parents": [
        "4ffc6b00031a1dea42bd8b549fc32d6918c41396"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Nov 12 15:10:48 2014 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Nov 12 15:10:48 2014 +0000"
      },
      "message": "fix metric name\n"
    },
    {
      "commit": "4ffc6b00031a1dea42bd8b549fc32d6918c41396",
      "tree": "a3ca74169c90177e9233cef7ed5740667f792781",
      "parents": [
        "d9bc36ff4c32711ab128e3b6491ade0ae8ed415d"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Aug 21 01:49:43 2014 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Aug 21 01:49:43 2014 -0500"
      },
      "message": "Update to use couch_stats\n"
    },
    {
      "commit": "d9bc36ff4c32711ab128e3b6491ade0ae8ed415d",
      "tree": "a51f9ec8b33554da040f011ed9fbe397c9a3bd40",
      "parents": [
        "64bab93937b2df855027da5d75ff565268eae631"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Aug 14 12:47:51 2014 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Aug 14 12:47:51 2014 -0500"
      },
      "message": "Load design docs with an ejson body\n"
    },
    {
      "commit": "64bab93937b2df855027da5d75ff565268eae631",
      "tree": "ea349e7d7dc9781cd4fe44ee7385f397cd520af8",
      "parents": [
        "5f5c289fd75843faaf9a8f5d05739f4e7eeb6e68"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "robert.newson@cloudant.com",
        "time": "Fri Nov 22 16:38:03 2013 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Jul 29 11:57:08 2014 +0100"
      },
      "message": "set module version to 1\n"
    },
    {
      "commit": "5f5c289fd75843faaf9a8f5d05739f4e7eeb6e68",
      "tree": "a6ca72eb042a31e6e6701d7844849ced4b910432",
      "parents": [
        "4158945359493733d0e7e94ca388146f145fcd53"
      ],
      "author": {
        "name": "Brian Mitchell",
        "email": "brian@p2p.io",
        "time": "Wed Oct 23 23:02:00 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Jul 29 11:56:58 2014 +0100"
      },
      "message": "Address code review feedback\n\nSummary:\n* removed the useless include inside ddoc_cache\n* revised the export listing style and removed confusing comments\n* added guards back to older ddoc_cache:open/2 API\n* clarified a type declaration, still strict until it\u0027s moved\n* replaced match_newest sort with the canonical comparison rule\n* simplified setting of the OpenerKey in some clauses\n* renamed Rev* variables for correctness\n* added back precious whitespace in some places\n"
    },
    {
      "commit": "4158945359493733d0e7e94ca388146f145fcd53",
      "tree": "348b07d197fb91f4b7223f46cb83caa7a4f8dbad",
      "parents": [
        "8ab968359919a42279603a52ea98a061d4037079"
      ],
      "author": {
        "name": "Brian Mitchell",
        "email": "brian@cloudant.com",
        "time": "Tue Oct 15 17:05:55 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Jul 29 11:56:44 2014 +0100"
      },
      "message": "Add support for keying the cache by revision\n\nThis patch splits up the code paths between ddoc_cache and\nddoc_cache_opener a bit more clearly, keeping the gen_server\nimplementation details \"mostly\" in one place. The overloaded\nopen function has been replaced with more explicit function\nnames. I\u0027ve left the old open to support old code during the\nupgrade process but it should be removed after the next release.\n\nThe opener lookup keys are a bit mismatched from the LRU keys so\nI\u0027ve renamed those variables to make it clear when we\u0027re talking\nabout the openers rather than the cache itself. It could be\nargued that the revision oblivious doc lookup could reuse the\nresult of any pending revision specific lookup on the same id\nbut it seems a bit too optimistic here so I\u0027ve left them as\nseparate opener keys.\n"
    },
    {
      "commit": "8ab968359919a42279603a52ea98a061d4037079",
      "tree": "5b2e75812532ac60a500663396d7f9c457b706c0",
      "parents": [
        "4b1c758b58da9615eb10320add30a4628002b23f"
      ],
      "author": {
        "name": "Brian Mitchell",
        "email": "brian@cloudant.com",
        "time": "Fri Oct 11 12:25:34 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Jul 29 11:50:55 2014 +0100"
      },
      "message": "Simplify pulling out all design document ids from the cache\n\nThis allows the code to avoid copying the entire ets entries into\ncode from a separate module for both efficiency and modularity\npurposes. This requires the new ets_lru match code to function.\n\nIt currently uses match which is dispatched to the gen_server.\nIt might be wise to make it direct since the match code does not\nupdate access times (or if it did, we could make that a cast).\n"
    },
    {
      "commit": "4b1c758b58da9615eb10320add30a4628002b23f",
      "tree": "091287d1ad73ffe92ed454c2f7a7db36d59f41ce",
      "parents": [
        "72f6af5329f115a18b290b8b0c7031f0ad82520c"
      ],
      "author": {
        "name": "Brian Mitchell",
        "email": "brian@cloudant.com",
        "time": "Fri Oct 11 11:04:00 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Jul 29 11:50:47 2014 +0100"
      },
      "message": "Define a macro for the LRU cache name\n"
    },
    {
      "commit": "72f6af5329f115a18b290b8b0c7031f0ad82520c",
      "tree": "55c003a120c7b140b50d7bdede2658f07330b575",
      "parents": [
        "62198081464835bb1c88bbea9ac7e5c2e69aa042"
      ],
      "author": {
        "name": "Brian Mitchell",
        "email": "brian@cloudant.com",
        "time": "Thu Oct 10 16:50:38 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Jul 29 11:50:34 2014 +0100"
      },
      "message": "Add a simple dialyzer task\n\nThis fixes a number of dialyzer warnings as well. Mostly for simple\nmissing matches. I\u0027m not sure it\u0027s worth covering all of these cases\njust yet but it wasn\u0027t hard for this code.\n\nI\u0027ve also included the ets_lru module in the dialyzer source to help\nensure that the new match APIs are used correctly. It will skip it\nif it\u0027s not found on the default path or at ETS_LRU_PATH.\n"
    },
    {
      "commit": "62198081464835bb1c88bbea9ac7e5c2e69aa042",
      "tree": "ec5438f78a96c830aead94ffb92476e1428cc7a5",
      "parents": [
        "41d82533aa59ca271619e822f4542faa5f3d028c"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri May 24 14:32:04 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Jul 29 11:27:05 2014 +0100"
      },
      "message": "Fix name of event listener callback\n"
    },
    {
      "commit": "41d82533aa59ca271619e822f4542faa5f3d028c",
      "tree": "8d051dbac8b87cf0e07032d1354b4a80b057c831",
      "parents": [
        "f17c21fb635f86319cce46fd502e01efebea59f8"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Apr 23 17:05:55 2013 -0500"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Jul 29 11:26:06 2014 +0100"
      },
      "message": "Update to use new couch_event application\n"
    },
    {
      "commit": "f17c21fb635f86319cce46fd502e01efebea59f8",
      "tree": "29f69163505ba8ee8bf65af89a3b607928bef119",
      "parents": [
        "beddafa3cf7545263a74d66e7834721abc166c3a"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Feb 12 23:24:20 2014 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Feb 12 23:24:20 2014 +0000"
      },
      "message": "Change API to function per level\n"
    },
    {
      "commit": "beddafa3cf7545263a74d66e7834721abc166c3a",
      "tree": "75cbfa1e1ab533279ae62dbfe35d4cb735f38596",
      "parents": [
        "bd245ace52369c808155c771c43bcdd97127ea4e"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "robert.newson@cloudant.com",
        "time": "Wed Feb 12 20:12:28 2014 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "robert.newson@cloudant.com",
        "time": "Wed Feb 12 20:12:28 2014 +0000"
      },
      "message": "Switch to couch_log\n"
    },
    {
      "commit": "bd245ace52369c808155c771c43bcdd97127ea4e",
      "tree": "ae7fb38cab402e8f0bb88d8a3159f31ae1991416",
      "parents": [
        "1a1155d7360f0e8dcb9d8b4a87a64333ce721771"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Dec 23 23:09:28 2013 +0000"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 17 13:41:21 2014 -0800"
      },
      "message": "This ejson_body requirement is tedious and pervasive.\n"
    },
    {
      "commit": "1a1155d7360f0e8dcb9d8b4a87a64333ce721771",
      "tree": "48efe60da49debcc7e2a4bd7b6cc95e2055486cc",
      "parents": [
        "ffaf6dce32556ed963a8ee6c32085b54aedb1114"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Dec 19 18:16:58 2013 +0000"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 17 13:41:17 2014 -0800"
      },
      "message": "Remove references to margaret\n"
    },
    {
      "commit": "ffaf6dce32556ed963a8ee6c32085b54aedb1114",
      "tree": "c7f1c28f07d9499dd237ed9bde5ef73e8ab2a07d",
      "parents": [
        "670dee35bd3f5df42dc0893108783869267d67e3"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Dec 18 14:04:59 2013 +0000"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 17 13:41:13 2014 -0800"
      },
      "message": "Build with rebar\n"
    },
    {
      "commit": "670dee35bd3f5df42dc0893108783869267d67e3",
      "tree": "39e957cbc60e528eca2f1f2a1aab2f1a26af82e6",
      "parents": [
        "456913ad878f76701a28bba737c02563f639c17f"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Jun 13 13:42:11 2013 +0100"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 17 13:41:10 2014 -0800"
      },
      "message": "Fix up copyright headers\n"
    },
    {
      "commit": "456913ad878f76701a28bba737c02563f639c17f",
      "tree": "3e3395041e3d482352bcf621dd63fbd6cf654482",
      "parents": [
        "b0da8b35078f57097f1d41124cc671d8619c4e0c"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Mar 05 16:39:17 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 17 13:41:06 2014 -0800"
      },
      "message": "New build system for ddoc_cache\n"
    },
    {
      "commit": "b0da8b35078f57097f1d41124cc671d8619c4e0c",
      "tree": "cf60af880cd0e4afa0189b99063b2f1f5b1fc7c8",
      "parents": [
        "cb9906ca577347150037021a9d410ba2839b26ba"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Jan 29 17:26:47 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Jan 29 17:26:47 2013 -0600"
      },
      "message": "Fix validation funs return format bug\n"
    },
    {
      "commit": "cb9906ca577347150037021a9d410ba2839b26ba",
      "tree": "8021412ee0be039a235dda9dd757c07ff0f5fdde",
      "parents": [
        "8bd9ba66d858a1af181479f34bfe01412663bc80"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Jan 29 17:09:52 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Jan 29 17:12:19 2013 -0600"
      },
      "message": "Pass through responses and errors directly\n\nThere was a bit of a mismatch in the behavior of ddoc_cache:open/2 and\nfabric:open_doc/3. This just makes sure that return values are returned\nand any exceptions are reraised with the same semantics of\nthrow/error/exit as they were generated.\n"
    },
    {
      "commit": "8bd9ba66d858a1af181479f34bfe01412663bc80",
      "tree": "97cc9958709346b09f848b02ff38b8ef0855a319",
      "parents": [
        "077113e16efb3208dded09c1e8e57888a2153f6f"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 25 15:49:35 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 25 15:49:35 2013 -0600"
      },
      "message": "Include some basic metrics for cache ops\n"
    },
    {
      "commit": "077113e16efb3208dded09c1e8e57888a2153f6f",
      "tree": "25ba547331c3bd71ad563a7e7d94bcb5a423355d",
      "parents": [
        "304b46f002ff8a42dd9896299e2d75d292ffce73"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 25 00:12:20 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 25 00:12:20 2013 -0600"
      },
      "message": "Handle requests that occur when the LRU is down\n\nWe don\u0027t want to break things if the ddoc cache LRU disappears for any\nreason. I\u0027ve seen this during the first release upgrade as well as\nlocally during a dev node boot. Its relatively minor but we should be\nthorough here.\n"
    },
    {
      "commit": "304b46f002ff8a42dd9896299e2d75d292ffce73",
      "tree": "1ea896f243dfcdf019f908f1ca6dedfecd9fd208",
      "parents": [
        "3c7c53d7a9c67572862d088d8ac4905378843f98"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jan 24 17:31:41 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jan 24 17:31:41 2013 -0600"
      },
      "message": "Report database_not_found errors to clients\n\nBit of a regression on trying to load views from dbs that didn\u0027t exist\ncreated a bad match when we returned an error instead of {ok, DDoc}.\nThis just tracks database_not_found and throws errors instead of\nreturning them.\n"
    },
    {
      "commit": "3c7c53d7a9c67572862d088d8ac4905378843f98",
      "tree": "b326a02e73e2a56a700b78ef8ea4c2e4a686cbea",
      "parents": [
        "c3e004d3978c7cce61a099f5fb6ff992b1917940"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jan 24 01:11:43 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jan 24 01:11:43 2013 -0600"
      },
      "message": "The ets_lru TTL is specified in milliseconds\n\nThis makes a significant difference in caching efficacy.\n"
    },
    {
      "commit": "c3e004d3978c7cce61a099f5fb6ff992b1917940",
      "tree": "5e5e5dd30e6c884a4f1b4b95b62dd98f3b7c89db",
      "parents": [
        "6e87582b4b7aeadf3f6a844c394bfa3cffed4e45"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Jan 23 16:16:53 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Jan 23 16:16:53 2013 -0600"
      },
      "message": "Remember the empty options argument\n"
    },
    {
      "commit": "6e87582b4b7aeadf3f6a844c394bfa3cffed4e45",
      "tree": "4fbdacb9780b67af0fb5f47300e36eaeaa8a3175",
      "parents": [
        "c9da4925a8a2e6a064f59ba20d223080f715032e"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Jan 23 16:02:33 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Jan 23 16:02:55 2013 -0600"
      },
      "message": "Set cache TTL to 60s\n"
    },
    {
      "commit": "c9da4925a8a2e6a064f59ba20d223080f715032e",
      "tree": "661d2769a054b612f0ef2353dac106a7fde558a7",
      "parents": [
        "3ea44df9dea153d14d424cb5de0e9e3504e17cb9"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Jan 23 15:34:47 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Jan 23 16:02:55 2013 -0600"
      },
      "message": "Include a cache eviction strategy\n\nThe LRU already has a fairly short TTL of 60s so this is just to try and\nminimize the window that we have stale design docs cached. As such this\neviction strategy isn\u0027t super sensitive to errors as the TTL should\nlimit our window of staleness.\n"
    },
    {
      "commit": "3ea44df9dea153d14d424cb5de0e9e3504e17cb9",
      "tree": "15aa6cc4e3857cd2a80ba4fde29b71a6503cb775",
      "parents": [
        "30ac8442571367709add935e516a7647fe4ee2c3"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Jan 23 14:11:28 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Jan 23 16:02:51 2013 -0600"
      },
      "message": "Support caching validation functions\n"
    },
    {
      "commit": "30ac8442571367709add935e516a7647fe4ee2c3",
      "tree": "8105bcd59d00fa41ec9037a46a01c8134bf4e8e1",
      "parents": [
        "175d69bf254de855ba5345a7c04e95a8576ab62f"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Dec 28 03:03:35 2012 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Dec 28 03:03:35 2012 -0600"
      },
      "message": "Refactor to use new ets_lru application\n\nBreaking out the LRU definitely stripped out a lot of the code from this\napplication.\n"
    },
    {
      "commit": "175d69bf254de855ba5345a7c04e95a8576ab62f",
      "tree": "be4f72262a9dd622bf455271114b572cb559b6d2",
      "parents": [
        "9911ea51e31fc43d182014f6fc05b25d2ef8cda2"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Dec 28 03:02:07 2012 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Dec 28 03:02:07 2012 -0600"
      },
      "message": "Add .gitignore\n"
    },
    {
      "commit": "9911ea51e31fc43d182014f6fc05b25d2ef8cda2",
      "tree": "727b79fd5d41266a770e6433194e8608d5163ea3",
      "parents": [],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Dec 19 18:18:04 2012 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Dec 19 18:18:04 2012 -0600"
      },
      "message": "Initial import\n"
    }
  ]
}
