)]}'
{
  "log": [
    {
      "commit": "f0a6854e578469612937a766632fdcdc52ee9c65",
      "tree": "e98628efb4bef255af48efc2c5267000c4d93271",
      "parents": [
        "53555fd909d5dd3d4a610c3fd6795950a8f7d022"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Nov 23 23:05:00 2016 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Nov 23 23:05:00 2016 -0500"
      },
      "message": "Configurable timeout for view group get_info/1\n\nA busy view group server might take longer than 5 seconds to respond, so make\nthe timeout configurable. \"infinity\" is also a valid configuration value.\n\nConfiguration section, key and default value (in milliseconds):\n\n   `query_server_config.group_info_timeout \u003d 5000`\n\nCOUCHDB-3242\n"
    },
    {
      "commit": "53555fd909d5dd3d4a610c3fd6795950a8f7d022",
      "tree": "880d72f29bf5e8b0f0c860170e7ab614f7d11399",
      "parents": [
        "ee21d0181f0879bf9ab2dc6d67cc5c26c7c76628",
        "a4db124b097089b89fe26cd9a60b88b9f38dc3c0"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 06 13:30:29 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 06 13:30:29 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:3135-remove_config_subscribe_from_couch_index\u0027\n\nThis closes #19\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    },
    {
      "commit": "a4db124b097089b89fe26cd9a60b88b9f38dc3c0",
      "tree": "880d72f29bf5e8b0f0c860170e7ab614f7d11399",
      "parents": [
        "ee21d0181f0879bf9ab2dc6d67cc5c26c7c76628"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 06 13:07:28 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 06 13:19:33 2016 -0700"
      },
      "message": "Do not use config subscription in couch_index\n\nCOUCHDB-3135\n"
    },
    {
      "commit": "ee21d0181f0879bf9ab2dc6d67cc5c26c7c76628",
      "tree": "f546cf292f2e2b5afa66b7151310e23a971435cc",
      "parents": [
        "7d3d34f2223dbc5f348d1fc370dadfca6433f9c5",
        "7b827534e8e5f7d1cb8dd2cebd0ec003165690b2"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 14:59:39 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 14:59:39 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:3102-fix-config_subscription\u0027\n\nThis closes #18\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    },
    {
      "commit": "7b827534e8e5f7d1cb8dd2cebd0ec003165690b2",
      "tree": "f546cf292f2e2b5afa66b7151310e23a971435cc",
      "parents": [
        "72dfb8507f95a540bf4eb167605d63d0de77a172"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 13:17:31 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 13:17:31 2016 -0700"
      },
      "message": "Use `define` to avoid repeating yourself\n\nCOUCHDB-3102\n"
    },
    {
      "commit": "72dfb8507f95a540bf4eb167605d63d0de77a172",
      "tree": "52ec9cc2756e2a676735ea729b8ff38cddc47570",
      "parents": [
        "7d3d34f2223dbc5f348d1fc370dadfca6433f9c5"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Aug 17 11:50:54 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 12:24:41 2016 -0700"
      },
      "message": "Update handle_config_terminate API\n\nCOUCHDB-3102\n"
    },
    {
      "commit": "7d3d34f2223dbc5f348d1fc370dadfca6433f9c5",
      "tree": "3035a8ac0972b4f941bcbd395b2976ab6cedffa3",
      "parents": [
        "e7d269800302224eacf9585f74eb30822495755b"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Jul 25 14:30:20 2016 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Jul 25 14:30:26 2016 -0500"
      },
      "message": "Use new reason formatting\n"
    },
    {
      "commit": "e7d269800302224eacf9585f74eb30822495755b",
      "tree": "f054f191352617bbb62e48dec5e3fdd6b4c474c6",
      "parents": [
        "aa8e6f9573a2dd04bf5a1a98576b1809e1a68035",
        "013be0be490157253ac52612c10b77cd347a9801"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Thu Jun 02 15:02:53 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Thu Jun 02 15:02:53 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:66522-hold-db-open-for-compact-recompact\u0027\n\nThis closes #17\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    },
    {
      "commit": "013be0be490157253ac52612c10b77cd347a9801",
      "tree": "f054f191352617bbb62e48dec5e3fdd6b4c474c6",
      "parents": [
        "aa8e6f9573a2dd04bf5a1a98576b1809e1a68035"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon May 30 15:16:02 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Thu Jun 02 14:50:50 2016 -0700"
      },
      "message": "Hold db opened for compact/recompact switch\n\ncouch_index_compactor should hold the underlying DB open during\nthe switch from the compaction phase to the recompaction phase.\nOtherwise db could be LRU-closed while in bettwen the two.\nWhich would cause the compaction job to fail possibly wasting\nhours of work.\n"
    },
    {
      "commit": "aa8e6f9573a2dd04bf5a1a98576b1809e1a68035",
      "tree": "a2b836f5a2f2365ed1f2fb0958a6a7918146afa5",
      "parents": [
        "8ec83cf484c0d062719824bde732814efb0d3ec0",
        "2c5cef415e046c89bb0127b7a85be28f681d7bc3"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue May 24 11:30:13 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue May 24 11:30:13 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:65501-disable-recompaction\u0027\n\nThis closes #16\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    },
    {
      "commit": "2c5cef415e046c89bb0127b7a85be28f681d7bc3",
      "tree": "a2b836f5a2f2365ed1f2fb0958a6a7918146afa5",
      "parents": [
        "4d4d58915589c0a6957358aa3027443ee60c2b63"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue May 17 11:46:33 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue May 24 10:24:03 2016 -0700"
      },
      "message": "Add test suite for is_recompaction_enabled/2\n"
    },
    {
      "commit": "4d4d58915589c0a6957358aa3027443ee60c2b63",
      "tree": "1f76e286c9297e66a33a8003734f2e656513c43d",
      "parents": [
        "b8bfca7ff0edb6790c57f5d082e296865ff7ff52"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon May 16 12:54:45 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue May 24 10:24:03 2016 -0700"
      },
      "message": "Implement a way to disable recompaction\n\nIn some cases it is a beneficial to be able to temporary disable\nrecompaction. This commit introduces a way to do so globally or\nindividually per database or specific index.\n\nThe configuration of the feature is as follows:\n\n[view_compaction.recompaction]\nenable \u003d true / false %% to set globaly\n\u003cdb_name\u003e \u003d enable / disable %% to set per db\n\u003cdb_name\u003e:\u003cidx_name\u003e \u003d enable / disable %% to set per index\n"
    },
    {
      "commit": "b8bfca7ff0edb6790c57f5d082e296865ff7ff52",
      "tree": "39e21abf62a666ea69a41c2915618f088f227c68",
      "parents": [
        "8ec83cf484c0d062719824bde732814efb0d3ec0"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri May 13 08:22:55 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue May 17 11:47:30 2016 -0700"
      },
      "message": "Extract commit_compacted function\n"
    },
    {
      "commit": "8ec83cf484c0d062719824bde732814efb0d3ec0",
      "tree": "bd59f1737f4152b10c433f2f3d4376b8c7018444",
      "parents": [
        "e8c8ca8b0bb66193f1ba7e4b1d7e4a3817d661ab"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Jan 11 16:27:37 2016 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Wed Mar 09 11:57:28 2016 -0400"
      },
      "message": "Add travis config\n"
    },
    {
      "commit": "e8c8ca8b0bb66193f1ba7e4b1d7e4a3817d661ab",
      "tree": "3fdfcfae90df6fa6d3cf0c73a3c1ceab526510b6",
      "parents": [
        "59910edf40f99485ec0e4929237b61606f93c99c"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Thu Dec 17 09:56:24 2015 -0800"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Jan 19 12:45:40 2016 -0400"
      },
      "message": "Adding couch_index_plugin:before_open/2 EPI hook\n\nThis would allow to extend existent indexers with additional\nfunctionality such as for example:\n\n- index file validation\n- index file moves\n- injection of options into #mrview.options\n- any other tasks which could be done on `open`\n"
    },
    {
      "commit": "59910edf40f99485ec0e4929237b61606f93c99c",
      "tree": "a99da1b1ed2a83726af374b2ab0face382b1216d",
      "parents": [
        "14f579dcd142ee90300244c854b301bbd5c863ee"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Jan 11 16:39:13 2016 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Jan 11 16:39:13 2016 -0400"
      },
      "message": "Add .gitignore file\n"
    },
    {
      "commit": "14f579dcd142ee90300244c854b301bbd5c863ee",
      "tree": "a9dad9bcf8f4df8797399339c947e33ec65b22ca",
      "parents": [
        "20ab254c51652ef72e1e28b591b83a390da27f1d"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 29 13:18:21 2015 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 29 13:18:21 2015 -0700"
      },
      "message": "Plug couch_epi using supervisor\n"
    },
    {
      "commit": "20ab254c51652ef72e1e28b591b83a390da27f1d",
      "tree": "be56b5fd8e4eec7b27f92f43c9f17999fde65ec3",
      "parents": [
        "6565cb961a8da21b21d213e4981133e119bb5ff1"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon Sep 28 09:51:35 2015 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon Sep 28 09:51:35 2015 -0700"
      },
      "message": "Update to new couch_epi API\n"
    },
    {
      "commit": "6565cb961a8da21b21d213e4981133e119bb5ff1",
      "tree": "1a97eec84b81f317d704b5c828516bac56abfb00",
      "parents": [
        "d548100002995ac279d761618be7195d900cd94c"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Sep 07 13:07:57 2015 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Sep 07 13:07:57 2015 +0100"
      },
      "message": "Throw validation error in all cases\n\nThis clarifies the validation contract; we always throw if there\u0027s a\nproblem with the design document.\n\nCOUCHDB-2772\n"
    },
    {
      "commit": "d548100002995ac279d761618be7195d900cd94c",
      "tree": "35441589c01325c1bdd695723f286c050bbd7fc3",
      "parents": [
        "cccff352c0a04316a836424a8d7fc2c6a8a61119"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Sep 02 09:51:43 2015 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Sep 02 09:51:43 2015 -0700"
      },
      "message": "Register service\n\nCOUCHDB-2796\n"
    },
    {
      "commit": "cccff352c0a04316a836424a8d7fc2c6a8a61119",
      "tree": "378924c1faee461c7d608d1a4e62aeb1d77c8a1b",
      "parents": [
        "b47ce941293c91972fe3e43a697ac3775b10b147"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 01 06:29:52 2015 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 01 06:29:52 2015 -0700"
      },
      "message": "Remove `ignore_providers` option\n\nCOUCHDB-2796\n"
    },
    {
      "commit": "b47ce941293c91972fe3e43a697ac3775b10b147",
      "tree": "542bfb9ba065ec5c5efc4c9852cc2e2804adbc2c",
      "parents": [
        "86a6cd4c9860c55a311a14fde56ab30926736933"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Sun Aug 23 13:24:37 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Sun Aug 23 13:24:59 2015 +0300"
      },
      "message": "Add LICENSE file\n"
    },
    {
      "commit": "86a6cd4c9860c55a311a14fde56ab30926736933",
      "tree": "0b17ab65d5b105fe349154c1461db8000f6647cf",
      "parents": [
        "d267eab1c11da00cf91944b596dc2d01d20c6e23"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Aug 05 14:56:42 2015 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Aug 05 14:56:42 2015 -0700"
      },
      "message": "Support transformer functions as args\n"
    },
    {
      "commit": "d267eab1c11da00cf91944b596dc2d01d20c6e23",
      "tree": "d7ca8f762f7e110bbac3cff26578f42837fbe0e3",
      "parents": [
        "cc7850c6d15125fd8e1c7e4969e4bf76a140c6b0"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Jun 19 12:01:23 2015 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Jul 31 07:25:05 2015 -0700"
      },
      "message": "Add couch_index_plugin:index_update/4\n"
    },
    {
      "commit": "cc7850c6d15125fd8e1c7e4969e4bf76a140c6b0",
      "tree": "4ee3cca8288c15d5ee987d9d34e017666516ac6c",
      "parents": [
        "13fed1ed28976aa1ed3fc92d30336ea53d837894"
      ],
      "author": {
        "name": "Mike Wallace",
        "email": "mikewallace@apache.org",
        "time": "Tue Jun 30 21:52:58 2015 +0100"
      },
      "committer": {
        "name": "Mike Wallace",
        "email": "mikewallace@apache.org",
        "time": "Wed Jul 15 11:14:52 2015 +0100"
      },
      "message": "Allow couch_index to open restricted design docs\n\nDesign docs in the authentication DB cannot be opened without an\nadmin context so this commit teaches couch_index to always use\n?ADMIN_CTX when opening documents.\n\nCOUCHDB-2738\n\nThis closes #6\n"
    },
    {
      "commit": "13fed1ed28976aa1ed3fc92d30336ea53d837894",
      "tree": "34691e65fc8b2976683e88b32a8323e64adc9dbc",
      "parents": [
        "e15bed80e21e573c05945c23908dc0c7194ef8e9"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Jun 25 18:42:14 2015 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Jun 25 18:42:14 2015 -0300"
      },
      "message": "Allow get_index to receive DDoc as a doc record\n\nThe function `couch_mrview:compact/3` is passing to `get_index`\na prepared #doc record, when `get_index` is expecting DDoc\nto be a ddoc\u0027s id. As a result view\u0027s compaction is crashing\nafter `fabric:open_doc` call.\n\nThis patch allows get_index to receive #doc record directly.\n\nThis closes COUCH-2729\n"
    },
    {
      "commit": "e15bed80e21e573c05945c23908dc0c7194ef8e9",
      "tree": "e485c98b2bc1c961a77c9ec03137776942e97345",
      "parents": [
        "0c5f25b1ce8a92fd83d2adc1f86e5e53c6d54a14",
        "0905e9ccf9c3efa4a13aa7e45973fdb50c37e356"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Tue May 12 22:55:28 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Tue May 12 22:55:28 2015 +0300"
      },
      "message": "Merge remote-tracking branch \u0027iilyak/2526-pending-updates-info\u0027\n\nThis closes #3\n\nCOUCHDB-2526\n"
    },
    {
      "commit": "0c5f25b1ce8a92fd83d2adc1f86e5e53c6d54a14",
      "tree": "1e44136068431a52026b71c3f68686cc7518771e",
      "parents": [
        "eb616267ef5cdd8f76ec80322f397b50c82f4e3a",
        "762a236c85b62ca4712779cebdeacfed817f85ce"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Wed Feb 04 18:45:05 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Wed Feb 04 18:45:05 2015 +0300"
      },
      "message": "Merge remote-tracking branch \u0027iilyak/2561-make-config-API-consistent\u0027\n\nThis closes #4\n\nCOUCHDB-2561\n"
    },
    {
      "commit": "762a236c85b62ca4712779cebdeacfed817f85ce",
      "tree": "1e44136068431a52026b71c3f68686cc7518771e",
      "parents": [
        "b14a73dd89bf49cbb68ccf7837c2a54a3ef69083"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Jan 30 12:04:27 2015 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Feb 04 06:07:37 2015 -0800"
      },
      "message": "Add vsn to modules implementing config_listener\n\nCOUCHDB-2561\n"
    },
    {
      "commit": "b14a73dd89bf49cbb68ccf7837c2a54a3ef69083",
      "tree": "eff07086a750dc06dbfaf39091eb8f4780c515ca",
      "parents": [
        "3aa6a19552eece95df0969c98af143fe6090c8f0"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Jan 30 11:17:15 2015 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Feb 04 06:07:37 2015 -0800"
      },
      "message": "Don\u0027t restart event handler on termination\n\nCOUCHDB-2561\n"
    },
    {
      "commit": "3aa6a19552eece95df0969c98af143fe6090c8f0",
      "tree": "a2c03ad76b06a2555ce9d13d212822a22b47366f",
      "parents": [
        "eb616267ef5cdd8f76ec80322f397b50c82f4e3a"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Thu Jan 29 13:40:27 2015 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Feb 04 06:07:37 2015 -0800"
      },
      "message": "Update config_listener behaviuor\n\nCOUCHDB-2561\n"
    },
    {
      "commit": "0905e9ccf9c3efa4a13aa7e45973fdb50c37e356",
      "tree": "a33d219c04fe1e4f927740c9d036903b6efa250e",
      "parents": [
        "eb616267ef5cdd8f76ec80322f397b50c82f4e3a"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon Dec 22 14:04:44 2014 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon Dec 22 14:04:44 2014 -0800"
      },
      "message": "Return pending_updates field from couch_index:get_info/1\n\nCOUCHDB-2526\n"
    },
    {
      "commit": "eb616267ef5cdd8f76ec80322f397b50c82f4e3a",
      "tree": "eb346e8ecd5f0c75eca43a0da43c405570132c7f",
      "parents": [
        "7acb7d370586ffc27291c3518cea18c51576c667"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Sat Nov 22 22:06:07 2014 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Sat Nov 22 22:08:30 2014 +0000"
      },
      "message": "Use fabric for shard #db{} records\n\nFixes _info calls on clustered views.\n\ncloses COUCHDB-2461\n"
    },
    {
      "commit": "7acb7d370586ffc27291c3518cea18c51576c667",
      "tree": "cc3137f3be60a5a831b4c5207901dbc502d4e940",
      "parents": [
        "9e638f6848c197e942c8f59eed4d61add5d150d1"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Wed Sep 24 15:42:32 2014 +0400"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Thu Sep 25 00:38:16 2014 +0400"
      },
      "message": "Use couch_log instead of ?LOG_*\n"
    },
    {
      "commit": "9e638f6848c197e942c8f59eed4d61add5d150d1",
      "tree": "336610e521a555282b9076763829fe440679090a",
      "parents": [
        "6a5e4860e0b634d8196a88b8f7f6116562f00702"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Aug 22 05:04:49 2014 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Aug 22 05:04:49 2014 -0500"
      },
      "message": "Use ejson_body when opening design documents\n"
    },
    {
      "commit": "6a5e4860e0b634d8196a88b8f7f6116562f00702",
      "tree": "ed932354d1318789ec51d66f7ba8ff3315867edf",
      "parents": [
        "f99e082d89772357f5f618cf21dc939f10180278"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sun Aug 17 15:12:02 2014 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sun Aug 17 15:14:41 2014 -0500"
      },
      "message": "Periodically check if an index should close\n\nWe need to periodically check if our index file still exists on disk\nbecause index cleanups don\u0027t notify the couch_index process when a file\nhas been deleted. If we don\u0027t check for this condition then the index\ncan remain open indefinitely wasting disk space.\n\nWe make sure that we\u0027re idle before closing by looking to see if we\nhave any clients waiting for an update.\n"
    },
    {
      "commit": "f99e082d89772357f5f618cf21dc939f10180278",
      "tree": "f1860a2f2d80376b202510d02c6025309025990e",
      "parents": [
        "6a12ce192e03187f0374b0ea711e633568b0512a"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sun Aug 17 14:39:37 2014 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sun Aug 17 14:39:37 2014 -0500"
      },
      "message": "Add an index committed event\n"
    },
    {
      "commit": "6a12ce192e03187f0374b0ea711e633568b0512a",
      "tree": "5d50424ccf20fcb08e823823b51c6fb4747aa825",
      "parents": [
        "007d37e6aa51c8dd4a9ff0c0a51d5dc027ffcebb"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Aug 07 13:30:41 2014 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Aug 07 13:33:45 2014 -0500"
      },
      "message": "[WIP] Update couch_index_server to use couch_event\n"
    },
    {
      "commit": "007d37e6aa51c8dd4a9ff0c0a51d5dc027ffcebb",
      "tree": "5b94bbc8a05cf917a436eafd58037d0e0e1ceadd",
      "parents": [
        "ef483cbccbb39feffefe112832d15fba3090dbfb"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Aug 04 15:05:17 2014 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Aug 04 15:06:37 2014 +0100"
      },
      "message": "Update couch_view to use new couch_event app\n"
    },
    {
      "commit": "ef483cbccbb39feffefe112832d15fba3090dbfb",
      "tree": "387859c4500e3e398b98db44c1eb58c77cabfef3",
      "parents": [
        "2b6ccb0bc316dbce12e2f153c12e1fa02e94c74d",
        "7a61bc8a0955af710222abed05559a866c764a87"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed May 14 16:06:19 2014 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed May 14 16:06:27 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027origin/import-master\u0027\n\nConflicts:\n\tMakefile.am\n\tsrc/couch_index.erl\n\tsrc/couch_index_server.erl\n\tsrc/couch_index_util.erl\n"
    },
    {
      "commit": "2b6ccb0bc316dbce12e2f153c12e1fa02e94c74d",
      "tree": "2fb489f1d97e33430887e9e712d8f36f026502d2",
      "parents": [
        "2c2c95b551222332d9502304c2b6a534a7822c78"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Feb 12 23:24:08 2014 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Feb 12 23:24:08 2014 +0000"
      },
      "message": "Change API to function per level\n"
    },
    {
      "commit": "2c2c95b551222332d9502304c2b6a534a7822c78",
      "tree": "08b84d0f0889217716d5d7dbe437df43e4617c42",
      "parents": [
        "510599f103d74729839d210155852e79d1ec8402"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "robert.newson@cloudant.com",
        "time": "Wed Feb 12 20:12:19 2014 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "robert.newson@cloudant.com",
        "time": "Wed Feb 12 22:55:42 2014 +0000"
      },
      "message": "Switch to couch_log\n"
    },
    {
      "commit": "510599f103d74729839d210155852e79d1ec8402",
      "tree": "3ad3c43907ca79d0f43bb3671a9185710e7722de",
      "parents": [
        "aeb7911ebb1109540e521d85c0600d7b2d1a684d"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Feb 04 17:31:52 2014 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Feb 04 17:31:52 2014 -0600"
      },
      "message": "Remove old notes module\n\nThis module was never intended to be compiled. Including it just\nconfuses rebar so we\u0027ll remove it.\n"
    },
    {
      "commit": "aeb7911ebb1109540e521d85c0600d7b2d1a684d",
      "tree": "316d5b86a51273069f76ebcb0b0f90f6e938117d",
      "parents": [
        "fd046ec62117b138e43d0e7d51a6aa57c93c7d09"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Dec 18 14:04:59 2013 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Dec 18 23:04:18 2013 +0000"
      },
      "message": "Build with rebar\n"
    },
    {
      "commit": "7a61bc8a0955af710222abed05559a866c764a87",
      "tree": "201d091a77e664fb8590375e1a91e4bb7edc9735",
      "parents": [
        "6c6ecdbc4c4ad5d3b77146dbf88f9b3bc475a567"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Aug 20 12:32:29 2013 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Aug 20 12:32:36 2013 +0100"
      },
      "message": "Expose get_compactor_pid/1\n"
    },
    {
      "commit": "fd046ec62117b138e43d0e7d51a6aa57c93c7d09",
      "tree": "3e440e99e544ce49fca6b035b31298473163c87d",
      "parents": [
        "7bd5db6f49a6517824808f008edbe284fa7351d1"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sun Mar 10 16:03:00 2013 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 20 06:02:54 2013 -0500"
      },
      "message": "Reject design docs with compilation errors\n\nIf we know the language for a given design doc we\u0027ll attempt to compile\nthe map/reduce functions and reject updates that introduce code that\ndoesn\u0027t compile. We don\u0027t yet do the other types of functions because\nthose errors are more user visible.\n"
    },
    {
      "commit": "7bd5db6f49a6517824808f008edbe284fa7351d1",
      "tree": "0a9efdae26ee1724466a204a15418ce0ae22117e",
      "parents": [
        "55b7abe387b6de0151df392e8298ba57d2222d51"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Sat Mar 09 18:22:19 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 20 06:02:53 2013 -0500"
      },
      "message": "Major change to use the new config app\n\nThis replaces couch_config with the config app. The config app is mostly\na direct port of couch_config to a new namespace with the addition of a\nrewritten config change notification mechanism. The new change mechanism\nremoves the ability to register an anonymous function that breaks code\nupgrades and generally cleans up the various listening patterns using a\nnew behavior definition.\n"
    },
    {
      "commit": "55b7abe387b6de0151df392e8298ba57d2222d51",
      "tree": "8aee182379c92f9475c06074cf2670462bd62e15",
      "parents": [
        "5784b11881c600519c23cb34e824e024afac9536"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Aug 31 20:48:16 2012 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 20 06:02:52 2013 -0500"
      },
      "message": "Fix views for node-local databases\n\nSimple fix matches on `\u003c\u003c\"shards/\", _/binary\u003e\u003e` to detect if it should\nuse a Fabric call or open a local database.\n\nBugzId: 14565\n"
    },
    {
      "commit": "5784b11881c600519c23cb34e824e024afac9536",
      "tree": "28984a22909d06ec8b15e0e3f3f4e84b8d97a5ce",
      "parents": [
        "3a10c4f2e14630f40320e8a9de1ad63f837eabba"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Mar 08 19:54:27 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 20 06:02:49 2013 -0500"
      },
      "message": "Ignore unexpected messages to couch_index_server\n"
    },
    {
      "commit": "3a10c4f2e14630f40320e8a9de1ad63f837eabba",
      "tree": "ba7b5bd99b224107058b6111dd53097eaa9349b1",
      "parents": [
        "ab00ad0d81158e95df33792310afd4354e088206"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Oct 28 15:53:07 2011 -0400"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 20 06:02:48 2013 -0500"
      },
      "message": "GC liberally throughout view indexing code path\n"
    },
    {
      "commit": "ab00ad0d81158e95df33792310afd4354e088206",
      "tree": "c99e2ba79b9b4613c6d03c61083a80ff2833946c",
      "parents": [
        "2f60ab9bf35596161718b18d2c823e8de026aa4c"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Aug 09 09:53:16 2010 -0400"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 20 06:02:46 2013 -0500"
      },
      "message": "Make couch_view_updater amenable to hot upgrades\n"
    },
    {
      "commit": "2f60ab9bf35596161718b18d2c823e8de026aa4c",
      "tree": "a654ddf561eae27edf8b1744747d335cc8763cea",
      "parents": [
        "0173221b768e85610003cdb32b7aa1d6d57da3af"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Mar 08 16:24:04 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 20 06:02:46 2013 -0500"
      },
      "message": "API for triggering view updates\n"
    },
    {
      "commit": "0173221b768e85610003cdb32b7aa1d6d57da3af",
      "tree": "35a4f8a3808f397bcdaf691eb08927aded073955",
      "parents": [
        "923be422b353b34e00f5ee2241525123340bcab7"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Mar 11 17:50:13 2013 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 20 06:02:43 2013 -0500"
      },
      "message": "Squash to #full_doc_info{} in by_seq tree\n"
    },
    {
      "commit": "923be422b353b34e00f5ee2241525123340bcab7",
      "tree": "1be36f4825ccfc645b46a798cc51491100747535",
      "parents": [
        "d83c669fbe4ea4051938f57bf72be7345099e2dc"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Mar 07 16:03:31 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 20 06:02:43 2013 -0500"
      },
      "message": "Store #full_doc_info{} records in the seq tree\n\nThis improves the performance of compaction and replication by not\nrequiring a btree lookup for every row in the by_seq tree at the cost of\nstoring extra bytes on disk.\n"
    },
    {
      "commit": "d83c669fbe4ea4051938f57bf72be7345099e2dc",
      "tree": "026e7ec80db5e9d9cc5a5501e1528fdbf0f6c32b",
      "parents": [
        "9cd9d349038cce5b87f48e547b0deaa6a63243eb"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Mar 05 13:51:39 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 20 00:28:57 2013 -0500"
      },
      "message": "Refactor couch source tree\n"
    },
    {
      "commit": "6c6ecdbc4c4ad5d3b77146dbf88f9b3bc475a567",
      "tree": "cdc605a562630ba235efc8476dc4d451b1f710c1",
      "parents": [
        "9a53bc6e5bdb9b35e72e589422dc9a74e26a4d7f"
      ],
      "author": {
        "name": "Noah Slater",
        "email": "nslater@apache.org",
        "time": "Thu Feb 21 20:59:46 2013 +0000"
      },
      "committer": {
        "name": "Noah Slater",
        "email": "nslater@apache.org",
        "time": "Thu Feb 21 21:01:24 2013 +0000"
      },
      "message": "fixed build\n"
    },
    {
      "commit": "9a53bc6e5bdb9b35e72e589422dc9a74e26a4d7f",
      "tree": "5a5e5fad825ac004086e3324950fbcdfce1686d1",
      "parents": [
        "9cd9d349038cce5b87f48e547b0deaa6a63243eb"
      ],
      "author": {
        "name": "Jan Lehnardt",
        "email": "jan@apache.org",
        "time": "Wed Feb 06 21:45:48 2013 +0100"
      },
      "committer": {
        "name": "Jan Lehnardt",
        "email": "jan@apache.org",
        "time": "Wed Feb 06 21:45:48 2013 +0100"
      },
      "message": "COUCHDB-1667: Revert index_dir to view_index_dir config option.\n\nPatch by Alexander Shorin.\n"
    },
    {
      "commit": "9cd9d349038cce5b87f48e547b0deaa6a63243eb",
      "tree": "5b5d402ee2ddf9efacefb629fad9f29ca3a30804",
      "parents": [
        "c54c5b8e24e4237b3f49f9799b3bcc04b0b9b1a4"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Sun Dec 02 09:04:48 2012 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Wed Dec 05 15:35:02 2012 -0800"
      },
      "message": "Close view files cleanly on DB create/delete\n\nThe shutdown_sync was actually interfering with a clean shutdown\ninitiated by the index processes themselves when they received a \u0027DOWN\u0027\nmessage from their monitoring of the DB process.  The explicit \u0027delete\u0027\ncast message in this patch is very probably redundant, but it makes the\nintent clear.  The important bit is to let the index process terminate\n*and* get confirmation of the termination before attempting to nuke the\ndirectory.\n\nCOUCHDB-1364\n"
    },
    {
      "commit": "c54c5b8e24e4237b3f49f9799b3bcc04b0b9b1a4",
      "tree": "eea14f0902714da5bc8e61077f037dc0a5530391",
      "parents": [
        "43e194602b4beb44160fb0ad930344f346cc72ea"
      ],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Wed Aug 15 14:50:18 2012 -0500"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Wed Aug 15 15:07:28 2012 -0500"
      },
      "message": "COUCHDB-1444 Fix missing_named_view\n\nInstead of replacing \u0027EXIT\u0027 signals we can just stuff the process that\nexited into the exit reason and match on that.\n"
    },
    {
      "commit": "43e194602b4beb44160fb0ad930344f346cc72ea",
      "tree": "b1d85467baa95e733ea6d3c097d4a73acecdd546",
      "parents": [
        "d56d3cf089eb4ba5b8aa14c0b89cc977547a9f2d"
      ],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Wed Aug 15 14:53:50 2012 -0500"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Wed Aug 15 14:53:50 2012 -0500"
      },
      "message": "Revert \"COUCHDB-1444 Fix missing_named_view errors\"\n\nThis reverts commit f5341a7dc65e96b806a958a27c9ccee5ec431162.\n"
    },
    {
      "commit": "d56d3cf089eb4ba5b8aa14c0b89cc977547a9f2d",
      "tree": "4bcdb74c0e3a346c580f86d604f255fffb6b09d5",
      "parents": [
        "3ff74b263624c72cd7163b14c8121c9d9b6a2e34"
      ],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Fri Aug 10 10:45:03 2012 -0500"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Tue Aug 14 16:29:57 2012 -0500"
      },
      "message": "COUCHDB-1444 Fix missing_named_view errors\n\nRelying on exit signals we were accidentally replacing view state\nincorrectly when an exit signal accidentally spidered between various\nprocesses related to couch_os_processes. This changes the state updates\nto be a \u0027$gen_cast\u0027 instead.\n"
    },
    {
      "commit": "3ff74b263624c72cd7163b14c8121c9d9b6a2e34",
      "tree": "b1d85467baa95e733ea6d3c097d4a73acecdd546",
      "parents": [
        "26bc97dfeb734d2174f5d80929221fba368058b0"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 09 16:06:57 2012 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 09 16:49:48 2012 +0100"
      },
      "message": "Assert that index sig never changes in the lifetime of a couch index process\n\nCOUCHDB-1444 demonstrates that #st{} state get out of sync\nsomehow, leading to unexpected 404\u0027s (missing_named_view) and\n200\u0027s. This patch ensures that index sig never changes in the hope\nthat it will lead to the cause of 1444 and prevent other occurrences\nof the same class of bug.\n"
    },
    {
      "commit": "26bc97dfeb734d2174f5d80929221fba368058b0",
      "tree": "b65de4e2fd510085ac05877f29c55251811bd8f9",
      "parents": [
        "4e0611d70b9b0e83e6973b76a1f9fba7a4df73b2"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Jul 30 16:54:16 2012 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Jul 30 16:54:16 2012 +0100"
      },
      "message": "COUCHDB-1491 - cleanup view tables\n\nA bad pattern in couch_index_server for the EXIT case prevented the\ncleanup of the BY_SIG table, causing subsequent view requests to\nreceive a dead pid.\n"
    },
    {
      "commit": "4e0611d70b9b0e83e6973b76a1f9fba7a4df73b2",
      "tree": "942a3a0b021f546bcfe79cddcf8cb4a8fe8957ce",
      "parents": [
        "98abd3b826b92b8912a84bbe7171ce7f74f3d8a6"
      ],
      "author": {
        "name": "Jason Smith (air)",
        "email": "jhs@iriscouch.com",
        "time": "Mon Jan 23 01:31:11 2012 +0000"
      },
      "committer": {
        "name": "Randall Leeds",
        "email": "randall@apache.org",
        "time": "Sun Jan 22 21:59:40 2012 -0800"
      },
      "message": "Use the correct utility function to get the index directory path\n"
    },
    {
      "commit": "98abd3b826b92b8912a84bbe7171ce7f74f3d8a6",
      "tree": "d6cc9ddc89e7e15dc54e424299153f66e5188e07",
      "parents": [
        "cd67817f2f42c65250566e4173b2fb09fb6d6326"
      ],
      "author": {
        "name": "Filipe David Borba Manana",
        "email": "fdmanana@apache.org",
        "time": "Tue Jan 17 16:39:31 2012 +0000"
      },
      "committer": {
        "name": "Filipe David Borba Manana",
        "email": "fdmanana@apache.org",
        "time": "Tue Jan 17 20:38:41 2012 +0000"
      },
      "message": "Fix ets lookup case_clause error after ddoc is updated\n\nThis happens if the ddoc_updated event is received after\na client opens the new view group or if a design document\nis updated several times in a row and there are still\nclients streaming views from 2 or more view groups that\nmatch old versions of the design document.\n\nThis relates to COUCHDB-1309\n"
    },
    {
      "commit": "cd67817f2f42c65250566e4173b2fb09fb6d6326",
      "tree": "42e4c55bca313ce2fc7fdebb1c4be4a154def4f1",
      "parents": [
        "e3a65c27196cda28a4ef29230c2d2eda17f91fd7"
      ],
      "author": {
        "name": "Filipe David Borba Manana",
        "email": "fdmanana@apache.org",
        "time": "Sun Nov 13 18:22:42 2011 +0000"
      },
      "committer": {
        "name": "Filipe David Borba Manana",
        "email": "fdmanana@apache.org",
        "time": "Tue Nov 15 13:00:11 2011 +0000"
      },
      "message": "Shutdown view group on ddoc update\n\nIf a design document is updated (or deleted), its associated\nview groups that are open will be shutdown as soon as they\nfinish serving all their requests. Not doing this prevented\na proper cleanup of outdated view files (file descriptor leaks)\nand unncessary processes in the system (old view groups and index\nfile ref counters, for e.g.).\n\nCOUCHDB-1309\n"
    },
    {
      "commit": "e3a65c27196cda28a4ef29230c2d2eda17f91fd7",
      "tree": "462718f9f2dae05167803495c32ff978c65596c4",
      "parents": [
        "a1e6b4031b19b48134851e2ae4c36a5faaeddea1"
      ],
      "author": {
        "name": "Benoit Chesneau",
        "email": "benoitc@apache.org",
        "time": "Tue Sep 27 08:25:08 2011 +0000"
      },
      "committer": {
        "name": "Benoit Chesneau",
        "email": "benoitc@apache.org",
        "time": "Tue Sep 27 08:25:08 2011 +0000"
      },
      "message": "reflect api changes in couch_api_index. While I\u0027m here, even if the\nmodule isn\u0027t used give it a proper module declaration.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1176269 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a1e6b4031b19b48134851e2ae4c36a5faaeddea1",
      "tree": "3a24167d91dc76817667aded5df354693fce9ff0",
      "parents": [
        "ee7f65b2345bd60ba9e4fcab91c0464a8968738c"
      ],
      "author": {
        "name": "Benoit Chesneau",
        "email": "benoitc@apache.org",
        "time": "Tue Sep 27 08:18:22 2011 +0000"
      },
      "committer": {
        "name": "Benoit Chesneau",
        "email": "benoitc@apache.org",
        "time": "Tue Sep 27 08:18:22 2011 +0000"
      },
      "message": "fix typos\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1176267 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ee7f65b2345bd60ba9e4fcab91c0464a8968738c",
      "tree": "657a9bde251f8e7855bba59dd1b37752f407c389",
      "parents": [
        "4bfe22c466bc253b8bd1fe7358819ace6b98db81"
      ],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Fri Sep 23 19:56:14 2011 +0000"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Fri Sep 23 19:56:14 2011 +0000"
      },
      "message": "Commit the compacted index before returning it.\n\nFailing to compact here could cause errors trying to resume a compaction\ndue to timeouts while searching for a header.\n\nSee COUCHDB-994\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1174984 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4bfe22c466bc253b8bd1fe7358819ace6b98db81",
      "tree": "3e9462d6adf5900b5007fec69f81d454e48bc50b",
      "parents": [
        "615c95167d3f85edc5e0a7bc919297bf869212a2"
      ],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Wed Sep 21 00:33:36 2011 +0000"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Wed Sep 21 00:33:36 2011 +0000"
      },
      "message": "Remember to provide a 2-arity wrapper to udpate.\n\nExpose the proper API to allow the compactor to use the updater to\ntop off a compaction when the view was udpated during compaction.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1173439 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "615c95167d3f85edc5e0a7bc919297bf869212a2",
      "tree": "a47ece7a227ed649b29919f3f1c0a30de5f7c9b1",
      "parents": [
        "3e2d21afc26b7bd9bdb625eba31d6a51bd6d309d"
      ],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Wed Sep 21 00:14:25 2011 +0000"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Wed Sep 21 00:14:25 2011 +0000"
      },
      "message": "Keep the databae open for index compaction.\n\nLong running index compactions could fail to complete if something was\niterating db\u0027s due to the underlying db being closed. Seeing as index\ncompaction is non-resumable this prevented index compaction from\ncompleting.\n\nFixes COUCHDB-1283\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1173435 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3e2d21afc26b7bd9bdb625eba31d6a51bd6d309d",
      "tree": "226e40457a0e0dd6c4a79a7557cdbd6c0485a6d3",
      "parents": [
        "2cc4da18044a8044604556975c02e67c54080417"
      ],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Sun Sep 18 21:52:09 2011 +0000"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Sun Sep 18 21:52:09 2011 +0000"
      },
      "message": "Avoid a race condition for monitored compaction.\n\nIt was technically possible for compaction to finish before a monitor\nwas requested. This fixes that by giving couch_index:compact a third\noptions parameter that accepts the atom \u0027monitor\u0027 which will then return\n{ok, MonRef} instead of a bare ok.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1172378 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2cc4da18044a8044604556975c02e67c54080417",
      "tree": "65d7f3f335739f7488abd5c5935a6d376a6fd5c2",
      "parents": [
        "ca7771306d24ecb271ca761f41e6fdc7e6707c91"
      ],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Sun Sep 18 21:51:35 2011 +0000"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Sun Sep 18 21:51:35 2011 +0000"
      },
      "message": "Only restart the updater if it was running.\n\nWhen compaction finished it was forcibly starting a new indexer process\neven if one wasn\u0027t already running. This reverts to the old behavior.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1172377 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ca7771306d24ecb271ca761f41e6fdc7e6707c91",
      "tree": "73b5860caf6a821b6738adad0c3e3d8b2a0a6a73",
      "parents": [
        "b2f2ebe43a51ec89191ba5d4bb815245b5a94fad"
      ],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Sun Sep 18 21:50:50 2011 +0000"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Sun Sep 18 21:50:50 2011 +0000"
      },
      "message": "Better lifetime error messages for couch_index.\n\nAdd a log message when the indexer exits as well as format the sig in\nlog messages has hex.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1172375 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b2f2ebe43a51ec89191ba5d4bb815245b5a94fad",
      "tree": "5fd4152dffb17ee860833fdaafaec63e0e9bd8b1",
      "parents": [
        "00998154f36840b0f6cb95bbc4b16c96a68dd737"
      ],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Sun Sep 18 17:57:16 2011 +0000"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Sun Sep 18 17:57:16 2011 +0000"
      },
      "message": "Use #doc_info{} optimization for _all_docs.\n\nDuring the refactor I accidentally undid the optimization from\nCOUCHDB-1061 which uses a #doc_info{} to get a #doc{} from disk\nwhich avoids a lookup in the id btree.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1172309 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "00998154f36840b0f6cb95bbc4b16c96a68dd737",
      "tree": "e81c2b5320bc9bd70c39a448837dd50e32ac1c1b",
      "parents": [
        "e29573b955e5fb059bd821fe0118c85b8b1fae9a"
      ],
      "author": {
        "name": "Filipe David Borba Manana",
        "email": "fdmanana@apache.org",
        "time": "Sat Sep 17 03:31:12 2011 +0000"
      },
      "committer": {
        "name": "Filipe David Borba Manana",
        "email": "fdmanana@apache.org",
        "time": "Sat Sep 17 03:31:12 2011 +0000"
      },
      "message": "Improved _active_tasks API\n\nTasks are now free to set any properties they wish (as an\nErlang proplist). Different tasks can have different properties\nand the status string doesn\u0027t exist anymore - instead client\napplications can build it using more granular properties from\n_active_tasks. Some of these properties are:\n\n1) \"progress\" (an integer percentage, for all tasks)\n2) \"database\" (for compactions and indexer tasks)\n3) \"design_document\" (for indexer and view compaction tasks)\n4) \"source\" and \"target\" (for replications)\n5) \"docs_read\", \"docs_written\", \"doc_write_failures\",\n   \"missing_revs_found\", \"missing_revs_checked\", \"source_seq\",\n   \"checkpointed_source_seq\" and \"continuous\" for replications\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1171888 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e29573b955e5fb059bd821fe0118c85b8b1fae9a",
      "tree": "a1836849bcee2400573e7ea3bbd3a8103814c872",
      "parents": [
        "dc11f92865d45e8d70f4fb8a94f48f937260c959"
      ],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Fri Sep 16 17:09:34 2011 +0000"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Fri Sep 16 17:09:34 2011 +0000"
      },
      "message": "Add logging for indexer events.\n\nThis includes info messages for update start/finish, compaction\nstart/finish and index close on db exit. There are also debug\nmessages that display the update_seq during updates.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1171675 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "dc11f92865d45e8d70f4fb8a94f48f937260c959",
      "tree": "7b7fc8f1d0bd35d7af7e20e5fd88e41f42a9f843",
      "parents": [],
      "author": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Thu Sep 15 17:22:30 2011 +0000"
      },
      "committer": {
        "name": "Paul Joseph Davis",
        "email": "davisp@apache.org",
        "time": "Thu Sep 15 17:22:30 2011 +0000"
      },
      "message": "Paul is an idiot commit 1 of 3.\n\nForgot I was working with a retarded VCS. These are the file changes\nfor the previous three commits.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1171180 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ]
}
