)]}'
{
  "log": [
    {
      "commit": "4d751bb6e37cf0da5fd57a86b880f76791307adf",
      "tree": "bcee64dfa31d5762f3f12f90aa414d555610c503",
      "parents": [
        "91de306f1402af0ff4fe83513efb872f7df357bf"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@tailscale.com",
        "time": "Wed Apr 22 23:19:31 2026"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@tailscale.com",
        "time": "Wed Apr 22 23:19:31 2026"
      },
      "message": "README: fix pkg.go.dev badge link to point to memcache package\n"
    },
    {
      "commit": "91de306f1402af0ff4fe83513efb872f7df357bf",
      "tree": "38ce938b87eae0a03fbde31c169513affe488493",
      "parents": [
        "8d39553ac7cf4c2a6857f3dc3751550176884755"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@tailscale.com",
        "time": "Wed Apr 22 23:18:30 2026"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@tailscale.com",
        "time": "Wed Apr 22 23:18:30 2026"
      },
      "message": "README: add pkg.go.dev badge\n"
    },
    {
      "commit": "8d39553ac7cf4c2a6857f3dc3751550176884755",
      "tree": "a717d3e78993f7c5a6140bb65aca7fdaf76aba52",
      "parents": [
        "4536b832ac7193c7ed5386940292fd47b4da3d3d"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Thu Apr 03 21:51:46 2025"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Thu Apr 03 21:51:59 2025"
      },
      "message": "memcache: rename Mutex name to conventional \u0027mu\u0027 name\n\nSigned-off-by: Brad Fitzpatrick \u003cbrad@danga.com\u003e\n"
    },
    {
      "commit": "4536b832ac7193c7ed5386940292fd47b4da3d3d",
      "tree": "5b564e2bca1cda6893c663457e5a41b8106badb7",
      "parents": [
        "d7e81fcaebc2f4f933faf03189db133853d3a58d"
      ],
      "author": {
        "name": "Mikel Olasagasti Uranga",
        "email": "mikel@olasagasti.info",
        "time": "Thu Mar 14 17:14:20 2024"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Thu Apr 03 21:39:10 2025"
      },
      "message": "Run GH Actions also in PRs\n\nSigned-off-by: Mikel Olasagasti Uranga \u003cmikel@olasagasti.info\u003e\n"
    },
    {
      "commit": "d7e81fcaebc2f4f933faf03189db133853d3a58d",
      "tree": "cac2805ad377b65c97ea514e30b2542572797679",
      "parents": [
        "36d5281794a44db47307aa0a964cc8350266ecef"
      ],
      "author": {
        "name": "ghrushneshr25",
        "email": "ghrushneshr25@gmail.com",
        "time": "Sun Jul 21 20:06:58 2024"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Thu Apr 03 21:37:59 2025"
      },
      "message": "added support to execute \"gat\"\n"
    },
    {
      "commit": "36d5281794a44db47307aa0a964cc8350266ecef",
      "tree": "d334a35b34541e047cddf099cf5e396ae732bf96",
      "parents": [
        "bf2c6a2dff4dad810503a5636ddb0f085328f690"
      ],
      "author": {
        "name": "Bryan Boreham",
        "email": "bjboreham@gmail.com",
        "time": "Wed Feb 16 11:21:26 2022"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Thu Apr 03 21:33:21 2025"
      },
      "message": "memcache: optimize scanGetResponseLine\n"
    },
    {
      "commit": "bf2c6a2dff4dad810503a5636ddb0f085328f690",
      "tree": "5d8b4d070822caa3f6ffd4253e4b0d609c690fff",
      "parents": [
        "c9bf3a7178bb884cbefcfd9087e702d1ad3cc307"
      ],
      "author": {
        "name": "Bryan Boreham",
        "email": "bjboreham@gmail.com",
        "time": "Wed Feb 16 11:19:28 2022"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Thu Apr 03 21:31:04 2025"
      },
      "message": "Benchmark for scanGetResponseLine\n"
    },
    {
      "commit": "c9bf3a7178bb884cbefcfd9087e702d1ad3cc307",
      "tree": "0d07e833028ae268fc66ff29218e55653e8b9c10",
      "parents": [
        "24af94b0387418c51cc45a2e1fe6d4d1bef8a0fd"
      ],
      "author": {
        "name": "Danny Kopping",
        "email": "dannykopping@gmail.com",
        "time": "Thu Apr 03 21:28:05 2025"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Thu Apr 03 21:28:05 2025"
      },
      "message": "memcache: extend connection deadline before each multi-get operation\n\nThis cherry-picks grafana/gomemcache#16\n"
    },
    {
      "commit": "24af94b0387418c51cc45a2e1fe6d4d1bef8a0fd",
      "tree": "9317349d34ba6e48ddc1270fd3bc2f00636dfaad",
      "parents": [
        "21f1bbe2b5f62d6694ba221ecb4a5f65b6564568"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Sep 05 02:41:31 2023"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Sep 05 02:49:40 2023"
      },
      "message": "add TLS integration test, update Client.DialContext docs\n\nTurns out we already have the necessary hook (DialContext), which was\nadded in #158.\n\nUpdates #121\n\nSigned-off-by: Brad Fitzpatrick \u003cbrad@danga.com\u003e\n"
    },
    {
      "commit": "21f1bbe2b5f62d6694ba221ecb4a5f65b6564568",
      "tree": "cb3a5a48f328dd68b5f484537e33b96a3242b410",
      "parents": [
        "43a49b47f3d6db4a5aab3c290dc17e1875bbb598"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 21:46:00 2023"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 21:46:00 2023"
      },
      "message": "raise DefaultTimeout from 100ms to 500ms\n\nVarious memcached concentrator things (and things with disks) are more\ncommon now (and TLS implementations with more round-trips). The\nassumption of all memcached access being within the same rack/LAN\nmight no longer be appropriate.\n\nUpdates #114\n\nSigned-off-by: Brad Fitzpatrick \u003cbrad@danga.com\u003e\n"
    },
    {
      "commit": "43a49b47f3d6db4a5aab3c290dc17e1875bbb598",
      "tree": "fba3e80dcc52b4e4725024e0c02ec13c909c3dd3",
      "parents": [
        "6f412de2c9522333749b3b18d75aff58be823828"
      ],
      "author": {
        "name": "martins",
        "email": "martin.soderstrom@aurorainnovation.com",
        "time": "Mon May 29 07:28:57 2023"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 21:43:16 2023"
      },
      "message": "Export Compare-And-Swap (CAS) id in Item\n\nEven though the CAS id is a transparent token there are use cases where the\nclient of the module could be interested in storing the token from a retrieved\nItem out-of-process for later use with a CAS operation. This is impossible if\nthe field is unexported.\n"
    },
    {
      "commit": "6f412de2c9522333749b3b18d75aff58be823828",
      "tree": "04af5a85df820e41db714969be143f475de6c4a3",
      "parents": [
        "553e0d5136654ba8517a6ad2bd44a3f7a79eb36b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 21:25:42 2023"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 21:28:43 2023"
      },
      "message": "add CompareAndSwap (cas) tests\n\nSigned-off-by: Brad Fitzpatrick \u003cbrad@danga.com\u003e\n"
    },
    {
      "commit": "553e0d5136654ba8517a6ad2bd44a3f7a79eb36b",
      "tree": "6c9e8f6223062a2f6eba32a27a57735812a16151",
      "parents": [
        "d8906edec2461be1c66c84bc7f4adfdd0771dc86"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 21:08:40 2023"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 21:08:40 2023"
      },
      "message": "run the three main test types in parallel\n\nSaves about six seconds overall, as each test currently involves a\nthree second sleep.\n"
    },
    {
      "commit": "d8906edec2461be1c66c84bc7f4adfdd0771dc86",
      "tree": "63848a0fd827a26daf77e39eb28884b20f163f5f",
      "parents": [
        "2695f49cbdf810906d483f8b3f76fc039c8eb9b9"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 04:31:29 2023"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 04:31:29 2023"
      },
      "message": "README.md: remove some dated Go notes\n\nSigned-off-by: Brad Fitzpatrick \u003cbrad@danga.com\u003e\n"
    },
    {
      "commit": "2695f49cbdf810906d483f8b3f76fc039c8eb9b9",
      "tree": "54853d2c05606b60b8890cdd1136718a0a3544b0",
      "parents": [
        "721ea2e79de6ce63d792e359fb3270c979ad2747"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 04:27:24 2023"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 04:29:31 2023"
      },
      "message": "add start of GitHub Actions CI\n"
    },
    {
      "commit": "721ea2e79de6ce63d792e359fb3270c979ad2747",
      "tree": "afe48ada179bd3b496a9f1040a0520947f07d354",
      "parents": [
        "cfb62796c2667b87c04141634dccca9080e1d256"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 04:22:06 2023"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 04:24:25 2023"
      },
      "message": "add AUTHORS file, adjust copyright headers\n\nSigned-off-by: Brad Fitzpatrick \u003cbrad@danga.com\u003e\n"
    },
    {
      "commit": "cfb62796c2667b87c04141634dccca9080e1d256",
      "tree": "16b361f003f497539f601f528cef6c77c7f9961a",
      "parents": [
        "dc2076913ede94bb7257e5e3a3066958058c182a"
      ],
      "author": {
        "name": "mingrammer",
        "email": "mingrammer@gmail.com",
        "time": "Tue Apr 07 14:40:18 2020"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 04:16:13 2023"
      },
      "message": "docs(readme): update README.md\n"
    },
    {
      "commit": "dc2076913ede94bb7257e5e3a3066958058c182a",
      "tree": "9c1153e973f9837c1e77b13b9d5a60101f516651",
      "parents": [
        "70caab5854ff5dc3e022f0346c8befbc3902d07e"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 04:11:30 2023"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 04:11:30 2023"
      },
      "message": "go.mod: bump minimum Go from 1.12 to Go 1.18\n\nGo 1.18 is what\u0027s in Ubuntu 22.04 LTS (Jammy). The later Ubuntus have\n1.19, 1.20, and 1.21 (the current Go release)\n\nGo 1.18 seems fine. Go 1.18 came out 2022-03-15, about 1.5 years ago.\n"
    },
    {
      "commit": "70caab5854ff5dc3e022f0346c8befbc3902d07e",
      "tree": "6a0b724fa990d5bcd5c8eeeb8e4d8c05a7113ab3",
      "parents": [
        "acc6962582850a09226e98c560bd02661cb405d7"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 04:11:21 2023"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Sep 04 04:11:21 2023"
      },
      "message": "add minimal Go memcached server for tests\n"
    },
    {
      "commit": "acc6962582850a09226e98c560bd02661cb405d7",
      "tree": "942baa882a5420e8e418f03cafcda03f9d506808",
      "parents": [
        "7d14c5a6c6c4c8d67fca5456e358ed6c06a1051a"
      ],
      "author": {
        "name": "Irina Marchuk",
        "email": "mar4ukira@gmail.com",
        "time": "Mon Nov 07 10:22:21 2022"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sun Jun 11 14:56:40 2023"
      },
      "message": "support custom DialContext\n"
    },
    {
      "commit": "7d14c5a6c6c4c8d67fca5456e358ed6c06a1051a",
      "tree": "5d64b0b89106b3f8efba4c00ed12333166b370d6",
      "parents": [
        "5f7a7d8757467be5cbc6c122b5ac6e88c155ffec"
      ],
      "author": {
        "name": "Irina Marchuk",
        "email": "mar4ukira@gmail.com",
        "time": "Tue Oct 04 09:34:46 2022"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sun Jun 11 14:56:40 2023"
      },
      "message": "feat: support custom dialer\n"
    },
    {
      "commit": "5f7a7d8757467be5cbc6c122b5ac6e88c155ffec",
      "tree": "5839fa90f42f2665d8f25c2927d5086c0859479f",
      "parents": [
        "62deef7fc822a74546eb9a34203d98d869124cc5"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jan 24 16:24:05 2023"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jan 24 16:25:41 2023"
      },
      "message": "memcache: add Client.Close method\n\nUpdates #155 from @renanbastos93\n\nCo-authored-by: renanbastos93 \u003crenanbastos.tec@gmail.com\u003e\n"
    },
    {
      "commit": "62deef7fc822a74546eb9a34203d98d869124cc5",
      "tree": "ce880b514ac7b0a6b69c1e6526e24f0f52ffd576",
      "parents": [
        "f7880d5bcff45511fd1679c4c42e611c349e954a"
      ],
      "author": {
        "name": "Friedrich42",
        "email": "39532283+Friedrich42@users.noreply.github.com",
        "time": "Fri Jan 08 08:16:43 2021"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Oct 31 21:26:13 2022"
      },
      "message": "Update README.md"
    },
    {
      "commit": "f7880d5bcff45511fd1679c4c42e611c349e954a",
      "tree": "3e9806357b1a0865052ad38ac6d5c6b669471c19",
      "parents": [
        "fb4bf637b56d66a1925c1bb0780b27dd714ec380"
      ],
      "author": {
        "name": "Justin Vanderhooft",
        "email": "justinvdhooft@gmail.com",
        "time": "Mon Oct 31 18:46:51 2022"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Oct 31 21:24:47 2022"
      },
      "message": "feat: add support for append/prepend\n"
    },
    {
      "commit": "fb4bf637b56d66a1925c1bb0780b27dd714ec380",
      "tree": "8f1c7470266e0477c50f5caa0080002e16724ee2",
      "parents": [
        "1e3230f1d830dd339a0cdaf794065897344d6712"
      ],
      "author": {
        "name": "Saimon Shaplygin",
        "email": "semyuon@gmail.com",
        "time": "Thu Jan 06 21:54:44 2022"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 06 21:54:44 2022"
      },
      "message": "delete an unused type\n\n"
    },
    {
      "commit": "1e3230f1d830dd339a0cdaf794065897344d6712",
      "tree": "719ac9bfe53e2b8dc50b8f64e7ba0242fc5fbaa6",
      "parents": [
        "a41fca850d0b6f392931a78cbae438803ea0b886"
      ],
      "author": {
        "name": "Robert-André Mauchin",
        "email": "30413512+eclipseo@users.noreply.github.com",
        "time": "Thu Jan 06 21:53:58 2022"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 06 21:53:58 2022"
      },
      "message": "Convert to string using rune() (#123)\n\nSee https://github.com/golang/go/issues/32479\r\n\r\nFixes #122.\r\n\r\nSigned-off-by: Robert-André Mauchin \u003czebob.m@gmail.com\u003e"
    },
    {
      "commit": "a41fca850d0b6f392931a78cbae438803ea0b886",
      "tree": "b5af8756c517934c62944e2044998e05e5ecfa95",
      "parents": [
        "551aad21a6682b95329c1f5bd62ee5060d64f7e8"
      ],
      "author": {
        "name": "Andrei Avram",
        "email": "avramandrei@ymail.com",
        "time": "Fri Sep 13 17:36:17 2019"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Sep 13 17:36:17 2019"
      },
      "message": "Add Ping method. (#91)\n\n* Add Ping method.\r\n"
    },
    {
      "commit": "551aad21a6682b95329c1f5bd62ee5060d64f7e8",
      "tree": "dccc0c4fb489c73ff7f98289b4b5df62dfcb5b90",
      "parents": [
        "bc664df9673713a0ccf26e3b55a673ec7301088b"
      ],
      "author": {
        "name": "Colin Arnott",
        "email": "github@urandom.co.uk",
        "time": "Fri Mar 29 17:39:43 2019"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Mar 29 17:39:43 2019"
      },
      "message": "add mod file (#94)\n\n- [go modules](https://github.com/golang/go/wiki/Modules) will be enabled in 1.13.\r\n- after merge it would be nice if you would tag this repo: e.g. `v1.0.0`\r\n  - this will allow consumers something more consistent and readable than `v0.0.0-20181229203832-0af3f3b09a0a`."
    },
    {
      "commit": "bc664df9673713a0ccf26e3b55a673ec7301088b",
      "tree": "536562097f859ecdebebf1991f0276d140f17677",
      "parents": [
        "f867c99a8ddb43e1703e8da9cb015b4c09699336"
      ],
      "author": {
        "name": "mostynb",
        "email": "mbmcode@gmail.com",
        "time": "Tue Jul 10 15:56:16 2018"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jul 10 15:56:16 2018"
      },
      "message": "Describe the meaning of 0 for Touch()\u0027s seconds parameter (#82)\n\nThis is mentioned in the Expiration field of the Item struct (no\r\nexpiration time), but not in the notes about the Touch function."
    },
    {
      "commit": "f867c99a8ddb43e1703e8da9cb015b4c09699336",
      "tree": "24cc3b982dcb9fa32c7f301364b840f6a5d5c5e5",
      "parents": [
        "7886924cd2b307eb286bd679327a834be7bc5579"
      ],
      "author": {
        "name": "Andrew Rodland",
        "email": "andrew@cleverdomain.org",
        "time": "Tue Jul 10 15:55:40 2018"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jul 10 15:55:40 2018"
      },
      "message": "Use ReadFull instead of ioutil.ReadAll to read objects (#76)\n\n* Use ReadFull instead of ioutil.ReadAll to read objects\r\n\r\nioutil.ReadAll uses a bytes.Buffer, which allocates memory by doubling.\r\nSince we know exactly how muh data we expect to get, we can allocate it\r\nin advance. This reduces the total amount of allocation, and ensures\r\nthat the slice stored in the item won\u0027t have excess capacity (which can\r\naffect memory usage if the item is held for a long time, for instance in\r\na secondary cache).\r\n\r\n"
    },
    {
      "commit": "7886924cd2b307eb286bd679327a834be7bc5579",
      "tree": "0aa6007409d1965e66fc369f8204cc1ac24985bf",
      "parents": [
        "1952afaa557dc08e8e0d89eafab110fb501c1a2b",
        "e206b6e27577e762454f0c890728652cdc17dcb7"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 27 21:36:57 2018"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 27 21:36:57 2018"
      },
      "message": "Merge pull request #81 from mostynb/update_link\n\nReplace code.google.com URL with godoc.org URL"
    },
    {
      "commit": "e206b6e27577e762454f0c890728652cdc17dcb7",
      "tree": "0aa6007409d1965e66fc369f8204cc1ac24985bf",
      "parents": [
        "1952afaa557dc08e8e0d89eafab110fb501c1a2b"
      ],
      "author": {
        "name": "Mostyn Bramley-Moore",
        "email": "mostyn@antipode.se",
        "time": "Mon May 28 17:02:07 2018"
      },
      "committer": {
        "name": "Mostyn Bramley-Moore",
        "email": "mostyn@antipode.se",
        "time": "Wed Jun 27 21:29:53 2018"
      },
      "message": "Replace code.google.com URL with godoc.org URL\n\ncode.google.com is in archive/maintenance mode, and redirects the original\nURL to:\nhttps://cloud.google.com/appengine/docs/standard/go/memcache/reference\n\nLet\u0027s just use a godoc URL instead.\n"
    },
    {
      "commit": "1952afaa557dc08e8e0d89eafab110fb501c1a2b",
      "tree": "e6c70fc5b6b68a3c3e8038288bc5a682124af48a",
      "parents": [
        "2fafb84a66c4911e11a8f50955b01e74fe3ab9c5",
        "100439223a48f6373cd2e8881f05b94a59c7f16a"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Feb 08 21:30:04 2017"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 08 21:30:04 2017"
      },
      "message": "Merge pull request #36 from fastly/master\n\nPerformance enhancements"
    },
    {
      "commit": "2fafb84a66c4911e11a8f50955b01e74fe3ab9c5",
      "tree": "f1333501f74fa25e90a9be3c428b098f23766a8c",
      "parents": [
        "fb1f79c6b65acda83063cbc69f6bba1522558bfc",
        "797efe68fa4ccfbf1ed4b3c763a328738781c2ed"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sun Nov 27 23:23:02 2016"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 27 23:23:02 2016"
      },
      "message": "Merge pull request #58 from qoelet/allow-unicode-keys\n\nLoosen key requirements.\r\n\r\nhttps://github.com/memcached/memcached/blob/master/doc/protocol.txt says only:\r\n\r\n```\r\nCurrently the\r\nlength limit of a key is set at 250 characters (of course, normally\r\nclients wouldn\u0027t need to use such long keys); the key must not include\r\ncontrol characters or whitespace.\r\n```\r\n\r\nIt says nothing about ASCII.\r\n"
    },
    {
      "commit": "797efe68fa4ccfbf1ed4b3c763a328738781c2ed",
      "tree": "f1333501f74fa25e90a9be3c428b098f23766a8c",
      "parents": [
        "fb1f79c6b65acda83063cbc69f6bba1522558bfc"
      ],
      "author": {
        "name": "Kenny Shen",
        "email": "kenny@machinesung.com",
        "time": "Thu Oct 27 07:22:25 2016"
      },
      "committer": {
        "name": "Kenny Shen",
        "email": "kenny@machinesung.com",
        "time": "Thu Oct 27 08:09:26 2016"
      },
      "message": "Allow unicode keys\n"
    },
    {
      "commit": "fb1f79c6b65acda83063cbc69f6bba1522558bfc",
      "tree": "bcadd70604e0398e633b0dd0e48edf6e146e6673",
      "parents": [
        "72a68649ba712ee7c4b5b4a943a626bcd7d90eb8"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sun Jan 17 19:21:50 2016"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sun Jan 17 19:22:05 2016"
      },
      "message": "Remove unused Item.Object field.\n\nFixes bradfitz/gomemcache#42\n"
    },
    {
      "commit": "100439223a48f6373cd2e8881f05b94a59c7f16a",
      "tree": "13ba4619033a74f086685492b245fc692d8ca4e3",
      "parents": [
        "eeef758cd56268f69c3ec2ee3e3a6205c6502cef"
      ],
      "author": {
        "name": "Jed Denlea",
        "email": "jed.denlea@gmail.com",
        "time": "Wed Mar 04 08:19:40 2015"
      },
      "committer": {
        "name": "Jed Denlea",
        "email": "jed.denlea@gmail.com",
        "time": "Wed Mar 04 08:31:23 2015"
      },
      "message": "Avoid unnecessary net.Addr string allocations\n\nClients use maps of strings to keep track of connections, while the\nServerSelector interface returns net.Addrs.  To map a net.Addr from the\nselector to a connection pool, `String()` is called.  And if a new\nconnection is necessary, `Network()` must be called as well.  This means\nthat, even if you have only one memcache backend and many persistent\nconnections, you still end up regenerating its address, and allocating a\nstring for it, over and over.\n\nThis commit introduces a simple struct which acts as a wrapper to a\nnet.Addr, caching its `String()` and `Network()` values.  If your\nmemcache client produces any significant traffic, this will avoid\npotentially many allocations.\n\nBefore:\nBenchmarkOnItem    300000        4317 ns/op       160 B/op  20 allocs/op\n\nNow:\nBenchmarkOnItem   1000000        1396 ns/op         0 B/op   0 allocs/op\n"
    },
    {
      "commit": "eeef758cd56268f69c3ec2ee3e3a6205c6502cef",
      "tree": "cdd8d9773b5d1b9add9153f8cf0c4aa6c52331ee",
      "parents": [
        "72a68649ba712ee7c4b5b4a943a626bcd7d90eb8"
      ],
      "author": {
        "name": "Jed Denlea",
        "email": "jed@fastly.com",
        "time": "Thu Feb 19 00:41:58 2015"
      },
      "committer": {
        "name": "Jed Denlea",
        "email": "jed@fastly.com",
        "time": "Thu Feb 19 00:41:58 2015"
      },
      "message": "Paramaterize max idle connections\n\nReplaces maxIdleConnsPerAddr with DefaultMaxIdleConns, and adds a\nparamter to Client, MaxIdleConns.\n"
    },
    {
      "commit": "72a68649ba712ee7c4b5b4a943a626bcd7d90eb8",
      "tree": "398a96ed03375fa8e3cdc3b82bc0a6f67ecc93a5",
      "parents": [
        "19812ca74b7af94a2d363acd8cebbaca8e6006d3"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat Nov 08 20:43:36 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat Nov 08 20:43:36 2014"
      },
      "message": "Address an allocation TODO in the default ServerSelector.\n\nAnd add a special case for only 1 server.\n\nMinor win, in any case.\n\nbenchmark                      old ns/op     new ns/op     delta\nBenchmarkPickServer            262           234           -10.69%\nBenchmarkPickServer_Single     253           139           -45.06%\n\nbenchmark                      old allocs     new allocs     delta\nBenchmarkPickServer            1              0              -100.00%\nBenchmarkPickServer_Single     1              0              -100.00%\n\nbenchmark                      old bytes     new bytes     delta\nBenchmarkPickServer            8             0             -100.00%\nBenchmarkPickServer_Single     8             0             -100.00%\n"
    },
    {
      "commit": "19812ca74b7af94a2d363acd8cebbaca8e6006d3",
      "tree": "c389d66ad72b0074f401b4d32876b6bb35684977",
      "parents": [
        "c2ad34c3807dea7dc13796143d8699bebadf1721"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat Nov 08 20:34:32 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat Nov 08 20:34:32 2014"
      },
      "message": "misc style tweaks\n"
    },
    {
      "commit": "c2ad34c3807dea7dc13796143d8699bebadf1721",
      "tree": "7eff22b4b0b71b5ce1e30419016889fc14846655",
      "parents": [
        "ac409371199b8d17d0d6614ec959585e41ace7a3"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat Nov 08 20:31:07 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat Nov 08 20:31:07 2014"
      },
      "message": "Move the LICENSE up a directory\n"
    },
    {
      "commit": "ac409371199b8d17d0d6614ec959585e41ace7a3",
      "tree": "590b708cde2f3c80416d3de129811e7cf1ddbded",
      "parents": [
        "4faecadd4f695d18a912ba110120fcfd460aca98"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Oct 06 16:45:03 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Oct 06 16:45:03 2014"
      },
      "message": "Fix README mistakes.\n"
    },
    {
      "commit": "4faecadd4f695d18a912ba110120fcfd460aca98",
      "tree": "d7155a76e4b1f01c0d0e3d9489d03d4e6d8f9f2f",
      "parents": [
        "ff6d3dbfbff3b6029863b62f8ffa574727e43d7d",
        "ecbc06793a7453371f5adcf437490f119cc4c0bf"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon May 26 14:20:26 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon May 26 14:20:26 2014"
      },
      "message": "Merge pull request #22 from gpaul/master\n\ngo vet: remove unreachable code"
    },
    {
      "commit": "ecbc06793a7453371f5adcf437490f119cc4c0bf",
      "tree": "decadc9f9cb97cef40294a4ffe6e165e4c25fbf4",
      "parents": [
        "799dd6f8c603b393e3fb9d20a841109766c60fa5"
      ],
      "author": {
        "name": "Gustav Paul",
        "email": "gustav.paul@gmail.com",
        "time": "Mon May 26 13:13:33 2014"
      },
      "committer": {
        "name": "Gustav Paul",
        "email": "gustav.paul@gmail.com",
        "time": "Mon May 26 13:13:33 2014"
      },
      "message": "go vet: remove unreachable code\n"
    },
    {
      "commit": "ff6d3dbfbff3b6029863b62f8ffa574727e43d7d",
      "tree": "bada69f0d2af9e0ef742c5be62ae64bb02083000",
      "parents": [
        "f52bf5c38ea7447b937d3e469738d7e1ddc98b95",
        "65b17693e060de437923348fa1c35e662ef4a6b2"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 23:10:27 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 23:10:27 2014"
      },
      "message": "Merge pull request #7 from robfig/master\n\nAdd the replace operation"
    },
    {
      "commit": "f52bf5c38ea7447b937d3e469738d7e1ddc98b95",
      "tree": "8271c5fa9c08c37311b3dcf5c36ac4f49963b732",
      "parents": [
        "76a77964a7a1e4c5099e903722a60e02c84fc75e"
      ],
      "author": {
        "name": "Kenny Grant",
        "email": "kennygrant@gmail.com",
        "time": "Wed Mar 27 21:07:01 2013"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 23:09:14 2014"
      },
      "message": "Added DeleteAll() method\n\nConflicts:\n\tmemcache/memcache.go\n\tmemcache/memcache_test.go\n"
    },
    {
      "commit": "76a77964a7a1e4c5099e903722a60e02c84fc75e",
      "tree": "55e5c43e237f53578201c60f9e790afe000d0ed9",
      "parents": [
        "5f7d3b9504d3248ca7bf0883a4c41bfcec6fca33"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 23:07:32 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 23:07:32 2014"
      },
      "message": "Just use net.Error\n"
    },
    {
      "commit": "5f7d3b9504d3248ca7bf0883a4c41bfcec6fca33",
      "tree": "0872cacbe20b3e7138ed0efdc3b770122a01430b",
      "parents": [
        "0f301323b9000ed6ac79cb7185366e29492ceb62",
        "9e30d82f643daebf2d535f45abc2060418e3e0ff"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 23:02:21 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 23:02:21 2014"
      },
      "message": "Merge pull request #16 from freelancer/master\n\nFix for bug that can cause leaked goroutines"
    },
    {
      "commit": "0f301323b9000ed6ac79cb7185366e29492ceb62",
      "tree": "af3c7687a9e1b0535e20b15e4824aa6db06a3c74",
      "parents": [
        "33c04b3472f5c88644529dda3dc290b018f28233",
        "806ff76cd09879b626e354b15889aa7f6be9b2e6"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 22:59:10 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 22:59:10 2014"
      },
      "message": "Merge pull request #12 from craigmj/master\n\nTouch Support"
    },
    {
      "commit": "33c04b3472f5c88644529dda3dc290b018f28233",
      "tree": "7aaea18ccf0077a25cdf975e390e21778e460fa3",
      "parents": [
        "f15ecfec1356a87b1d0d61c027a9b3ba378d9c90"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 22:54:02 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 22:54:02 2014"
      },
      "message": "use Skipf\n"
    },
    {
      "commit": "f15ecfec1356a87b1d0d61c027a9b3ba378d9c90",
      "tree": "b5087e436283d91cc85fd77b35e994e9ef3e3733",
      "parents": [
        "4c711e645b73162e999c3f233a45589252e45992"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 22:53:19 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat May 17 22:53:19 2014"
      },
      "message": "Add explicit LICENSE file.\n"
    },
    {
      "commit": "4c711e645b73162e999c3f233a45589252e45992",
      "tree": "f185f1ff4ea3bc885b9f8b8e75a15272fcab8b1f",
      "parents": [
        "799dd6f8c603b393e3fb9d20a841109766c60fa5",
        "783b5db84151f6c2458ac4e99685f36f2223934d"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Mar 07 19:14:14 2014"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Mar 07 19:14:14 2014"
      },
      "message": "Merge pull request #17 from bronze1man/pr-gofmt\n\ngofmt"
    },
    {
      "commit": "806ff76cd09879b626e354b15889aa7f6be9b2e6",
      "tree": "bd416fa243dc4c8b304a559d9e2b416130c0b6ad",
      "parents": [
        "82fef77911cd69a7b916dbfed0fe03e8641b034d"
      ],
      "author": {
        "name": "craigmj",
        "email": "craig@lateral.co.za",
        "time": "Wed Jan 29 10:12:07 2014"
      },
      "committer": {
        "name": "craigmj",
        "email": "craig@lateral.co.za",
        "time": "Wed Jan 29 10:12:07 2014"
      },
      "message": "flush_all support\n"
    },
    {
      "commit": "783b5db84151f6c2458ac4e99685f36f2223934d",
      "tree": "f185f1ff4ea3bc885b9f8b8e75a15272fcab8b1f",
      "parents": [
        "799dd6f8c603b393e3fb9d20a841109766c60fa5"
      ],
      "author": {
        "name": "bronze1man",
        "email": "bronze1man@gmail.com",
        "time": "Tue Jan 21 15:03:27 2014"
      },
      "committer": {
        "name": "bronze1man",
        "email": "bronze1man@gmail.com",
        "time": "Tue Jan 21 15:03:27 2014"
      },
      "message": "gofmt\n"
    },
    {
      "commit": "9e30d82f643daebf2d535f45abc2060418e3e0ff",
      "tree": "5da88511e7d3644fca09836af246073a84d16f5d",
      "parents": [
        "d919402f6961db6e3eef5fe24b49ee187e93afd1"
      ],
      "author": {
        "name": "Nick Davies",
        "email": "nick+git@freelancer.com",
        "time": "Thu Nov 14 04:02:51 2013"
      },
      "committer": {
        "name": "Nick Davies",
        "email": "nick+git@freelancer.com",
        "time": "Thu Nov 14 04:02:51 2013"
      },
      "message": "Cleaned up how timeouts were detected, still not amazing\n"
    },
    {
      "commit": "d919402f6961db6e3eef5fe24b49ee187e93afd1",
      "tree": "08e7d9bfb1b3f123fd5444a43046208c5f94850b",
      "parents": [
        "799dd6f8c603b393e3fb9d20a841109766c60fa5"
      ],
      "author": {
        "name": "Nick Davies",
        "email": "nick+git@freelancer.com",
        "time": "Tue Sep 03 01:59:46 2013"
      },
      "committer": {
        "name": "Nick Davies",
        "email": "nick+git@freelancer.com",
        "time": "Wed Nov 13 23:18:55 2013"
      },
      "message": "fixed bug with endless go routines\n"
    },
    {
      "commit": "799dd6f8c603b393e3fb9d20a841109766c60fa5",
      "tree": "0a9b12daa223d3fabebae7fc57b61903d725797d",
      "parents": [
        "e952ca00c130b0ba38930caee2f681618c9dbf26",
        "aed8a0d0be3f036b653c6d2b0058942ba5ef323f"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Nov 11 19:50:06 2013"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Mon Nov 11 19:50:06 2013"
      },
      "message": "Merge pull request #15 from garyburd/patch-1\n\nUpdate documentation link in README.md"
    },
    {
      "commit": "aed8a0d0be3f036b653c6d2b0058942ba5ef323f",
      "tree": "0a9b12daa223d3fabebae7fc57b61903d725797d",
      "parents": [
        "e952ca00c130b0ba38930caee2f681618c9dbf26"
      ],
      "author": {
        "name": "Gary Burd",
        "email": "gary@beagledreams.com",
        "time": "Mon Nov 11 18:08:11 2013"
      },
      "committer": {
        "name": "Gary Burd",
        "email": "gary@beagledreams.com",
        "time": "Mon Nov 11 18:08:11 2013"
      },
      "message": "Update documentation link in README.md"
    },
    {
      "commit": "e952ca00c130b0ba38930caee2f681618c9dbf26",
      "tree": "33b0c5707240b63a350fbdaf79dfffed8de83306",
      "parents": [
        "2aa650701b2de6fe5e4149ddb5e7f5c01c4d2f2d",
        "e7a12e6eb57c319d99c318c2bbd32814ce6380fb"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Sep 24 17:48:12 2013"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Sep 24 17:48:12 2013"
      },
      "message": "Merge pull request #13 from asim/master\n\nFix connection leak. Use net.Addr.String() as freeconn map key."
    },
    {
      "commit": "e7a12e6eb57c319d99c318c2bbd32814ce6380fb",
      "tree": "33b0c5707240b63a350fbdaf79dfffed8de83306",
      "parents": [
        "2aa650701b2de6fe5e4149ddb5e7f5c01c4d2f2d"
      ],
      "author": {
        "name": "Asim Aslam",
        "email": "asimaslam@Asims-MacBook-Pro.local",
        "time": "Mon Sep 09 13:40:22 2013"
      },
      "committer": {
        "name": "Asim Aslam",
        "email": "asimaslam@Asims-MacBook-Pro.local",
        "time": "Mon Sep 09 13:40:22 2013"
      },
      "message": "Fix connection leak. Use net.Addr.String() as freeconn map key. When the function SetServers is called the ServerList is replaced by a new set of net.Addr interfaces which no longer match those used as keys for the freeconn map. The underlying data structure is usually a TCPaddr or UnixAddr pointer. Go\u0027s equality operation on the map keys looks at the underlying pointer and thinks they are not the same so continues to create new connections assuming it does not have any free.\n"
    },
    {
      "commit": "82fef77911cd69a7b916dbfed0fe03e8641b034d",
      "tree": "0f0763c2f033b932387a0a1aaf2fea448e1e6a07",
      "parents": [
        "f872c089c06b7b12591d5f1b2ea67a6e58adc798"
      ],
      "author": {
        "name": "craigmj",
        "email": "craig@lateral.co.za",
        "time": "Mon Sep 02 04:07:19 2013"
      },
      "committer": {
        "name": "craigmj",
        "email": "craig@lateral.co.za",
        "time": "Mon Sep 02 04:07:19 2013"
      },
      "message": "Added documentation to the Touch method.\n"
    },
    {
      "commit": "f872c089c06b7b12591d5f1b2ea67a6e58adc798",
      "tree": "ac635550435ed5669b743ec0060d1991870d1cf4",
      "parents": [
        "486cdcf4d7d03ef82403c2f0d90f4effa4cebdbe"
      ],
      "author": {
        "name": "craigmj",
        "email": "craig@lateral.co.za",
        "time": "Sun Sep 01 10:36:27 2013"
      },
      "committer": {
        "name": "craigmj",
        "email": "craig@lateral.co.za",
        "time": "Sun Sep 01 10:36:27 2013"
      },
      "message": "Added testing of Touch to memcache_test.go\n"
    },
    {
      "commit": "486cdcf4d7d03ef82403c2f0d90f4effa4cebdbe",
      "tree": "7cd7070af421291fa02c7f6e1f7ca7e353cd3d56",
      "parents": [
        "2aa650701b2de6fe5e4149ddb5e7f5c01c4d2f2d"
      ],
      "author": {
        "name": "craigmj",
        "email": "craig@lateral.co.za",
        "time": "Sun Sep 01 10:10:44 2013"
      },
      "committer": {
        "name": "craigmj",
        "email": "craig@lateral.co.za",
        "time": "Sun Sep 01 10:10:44 2013"
      },
      "message": "Added TOUCH support\n"
    },
    {
      "commit": "2aa650701b2de6fe5e4149ddb5e7f5c01c4d2f2d",
      "tree": "74714a4c2574852894bf7ee012500bb3d39ba757",
      "parents": [
        "66c15b06fea42e943de7cc69c83eb119858567bd",
        "fed7323a51235dc7eff0744dfead5f195d30a04d"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed May 08 04:58:31 2013"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed May 08 04:58:31 2013"
      },
      "message": "Merge pull request #10 from d2fn/master\n\nparse headers with or without a cas id (for kestrel, etc)"
    },
    {
      "commit": "fed7323a51235dc7eff0744dfead5f195d30a04d",
      "tree": "74714a4c2574852894bf7ee012500bb3d39ba757",
      "parents": [
        "66c15b06fea42e943de7cc69c83eb119858567bd"
      ],
      "author": {
        "name": "Dietrich Featherston",
        "email": "d@github.com",
        "time": "Wed May 08 01:57:54 2013"
      },
      "committer": {
        "name": "Dietrich Featherston",
        "email": "d@github.com",
        "time": "Wed May 08 04:42:46 2013"
      },
      "message": "parse headers with or without a cas id (for kestrel, etc)\n"
    },
    {
      "commit": "65b17693e060de437923348fa1c35e662ef4a6b2",
      "tree": "5a341838b727dd6ce1f3647af38c56f01b0839bc",
      "parents": [
        "2ec1fd6256e2ac64eff2f4ea9cc889f729b9f3ee"
      ],
      "author": {
        "name": "Rob Figueiredo",
        "email": "robfig@gmail.com",
        "time": "Mon Mar 04 14:33:08 2013"
      },
      "committer": {
        "name": "Rob Figueiredo",
        "email": "robfig@gmail.com",
        "time": "Mon Mar 04 14:33:08 2013"
      },
      "message": "go fmt\n"
    },
    {
      "commit": "2ec1fd6256e2ac64eff2f4ea9cc889f729b9f3ee",
      "tree": "6ac01903a21cbaa951f673bed29185bd54e0fda4",
      "parents": [
        "66c15b06fea42e943de7cc69c83eb119858567bd"
      ],
      "author": {
        "name": "Rob Figueiredo",
        "email": "robfig@gmail.com",
        "time": "Mon Mar 04 03:46:33 2013"
      },
      "committer": {
        "name": "Rob Figueiredo",
        "email": "robfig@gmail.com",
        "time": "Mon Mar 04 03:46:33 2013"
      },
      "message": "Add Replace operation\n"
    },
    {
      "commit": "66c15b06fea42e943de7cc69c83eb119858567bd",
      "tree": "477fc8d01e996127f75a4b4e327ca08a025752be",
      "parents": [
        "8f3468c5838ff9355f1b07898ac6bdea24d1cc0f",
        "b198fc8c172cebe30c5660e4c35e27659c7adc2d"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Dec 19 20:37:27 2012"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Dec 19 20:37:27 2012"
      },
      "message": "Merge pull request #5 from jgrahamc/master\n\nFixed a bug where a bad connection gets reused"
    },
    {
      "commit": "b198fc8c172cebe30c5660e4c35e27659c7adc2d",
      "tree": "477fc8d01e996127f75a4b4e327ca08a025752be",
      "parents": [
        "1c05224a567e708bd36c8cfc07622701d2e60329"
      ],
      "author": {
        "name": "John Graham-Cumming",
        "email": "jgc@cloudflare.com",
        "time": "Wed Dec 19 13:35:58 2012"
      },
      "committer": {
        "name": "John Graham-Cumming",
        "email": "jgc@cloudflare.com",
        "time": "Wed Dec 19 13:35:58 2012"
      },
      "message": "Close connections that are being discarded\n\nIf a TCP connection to memcache is not being returned to the free list (because an error\nhas occurred on the connection and its reuse is not allowed), explicitly close the\nconnection.\n"
    },
    {
      "commit": "1c05224a567e708bd36c8cfc07622701d2e60329",
      "tree": "ea3832d5949da3af3349e24648d04752fd9b6bcd",
      "parents": [
        "8f3468c5838ff9355f1b07898ac6bdea24d1cc0f"
      ],
      "author": {
        "name": "John Graham-Cumming",
        "email": "jgc@cloudflare.com",
        "time": "Wed Dec 19 13:29:33 2012"
      },
      "committer": {
        "name": "John Graham-Cumming",
        "email": "jgc@cloudflare.com",
        "time": "Wed Dec 19 13:29:33 2012"
      },
      "message": "Fix a problem where an error in onItem could result in a bad connection being reused\n\nIf an error occurs inside the fn() that onItem calls it would have not been spotted by\ncondRelease() and that could result in a bad connection being placed back in the\npool of free connections. Under load the package was experiencing this problem manifested\nin the following fashion:\n\n  1. A connection gets an i/o timeout during a call to onItem()\n\n  2. The error returned by the function called by onItem() is placed in a new\n     err value (because of the :\u003d) but the condRelease() has been set up with\n     \u0026err from a previous declaration of err. Therefore err is nil.\n\n  3. condRelease() places the connection back in the free list.\n\n  4. The connection is reused at some point and there\u0027s data waiting to be read\n     from the previous memcache command that got the i/o timeout. This results\n     in (typically) an error from the Sscanf line at line 405 because that line\n     ends up trying to parse part of the response that was not previously read\n     because of the i/o timeout.\n\nThis fix prevents this from happening. If an error occurs the connection will not be\nreused.\n"
    },
    {
      "commit": "8f3468c5838ff9355f1b07898ac6bdea24d1cc0f",
      "tree": "32405cf07ea5aefb908ec9bdc3ffba4e5326410e",
      "parents": [
        "345e5c6ad1ed5a0bc6c123901c83e4d56021ddcd",
        "37d535ec609e9c10748afa1c42901973b3f6a206"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat Oct 06 17:08:16 2012"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sat Oct 06 17:08:16 2012"
      },
      "message": "Merge pull request #4 from codemartial/master\n\nReplace \u0027goinstall\u0027 with \u0027go get\u0027."
    },
    {
      "commit": "37d535ec609e9c10748afa1c42901973b3f6a206",
      "tree": "32405cf07ea5aefb908ec9bdc3ffba4e5326410e",
      "parents": [
        "345e5c6ad1ed5a0bc6c123901c83e4d56021ddcd"
      ],
      "author": {
        "name": "Tahir Hashmi",
        "email": "tnhashmi@gmail.com",
        "time": "Tue Aug 14 11:44:50 2012"
      },
      "committer": {
        "name": "Tahir Hashmi",
        "email": "tnhashmi@gmail.com",
        "time": "Tue Aug 14 11:44:50 2012"
      },
      "message": "Replaced \u0027goinstall\u0027 with \u0027go get\u0027\n\nIt seems like \u0027goinstall\u0027 is now \u0027go get\u0027, but getting that piece of information from web search is not too easy. Hope this would save other n00bs\u0027 time."
    },
    {
      "commit": "345e5c6ad1ed5a0bc6c123901c83e4d56021ddcd",
      "tree": "9ab64a707a82bd2b7ace6d51f842e7afa761bf85",
      "parents": [
        "e76709e48232cd136578b75ff57187a3bdef2eac"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jan 24 04:44:53 2012"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jan 24 04:44:53 2012"
      },
      "message": "use SetDeadline\n"
    },
    {
      "commit": "e76709e48232cd136578b75ff57187a3bdef2eac",
      "tree": "661a0218555554d8eb8d6bece63091c2a29cf502",
      "parents": [
        "95f9a84cec3cc0e0fba06d664f856d166abba61d"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jan 24 04:36:45 2012"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jan 24 04:36:45 2012"
      },
      "message": "doc link updates\n"
    },
    {
      "commit": "95f9a84cec3cc0e0fba06d664f856d166abba61d",
      "tree": "e082dc942d49e0f5034182b14abd06c1d4b7d23b",
      "parents": [
        "9282f3ff26861cafabe3e5e73af41225a523fba3"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Dec 23 18:07:03 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Dec 23 18:07:03 2011"
      },
      "message": "remove makefile; use the go tool\n"
    },
    {
      "commit": "9282f3ff26861cafabe3e5e73af41225a523fba3",
      "tree": "fb88ad1f9579d4732440488cb2e5390a293c9bcf",
      "parents": [
        "521adf102484bfc86a66c596366cbe01ac6a0a96"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Dec 23 18:04:30 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Dec 23 18:04:30 2011"
      },
      "message": "updates to time.Duration\n"
    },
    {
      "commit": "521adf102484bfc86a66c596366cbe01ac6a0a96",
      "tree": "555b02b4cd0ee06fc88e03631719cb9dbe6fc53b",
      "parents": [
        "0780803fad5d08b6dc5ff0b8c62062961ccd51de"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Dec 23 18:00:49 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Dec 23 18:00:49 2011"
      },
      "message": "doc update\n"
    },
    {
      "commit": "0780803fad5d08b6dc5ff0b8c62062961ccd51de",
      "tree": "81c6a4cb2d7925e288435d0be6a9d3c4bac60d83",
      "parents": [
        "3d39f3a295e1208a1df119bf2756230aa15ceefb"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Dec 23 17:59:14 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Fri Dec 23 17:59:14 2011"
      },
      "message": "gofix\n"
    },
    {
      "commit": "3d39f3a295e1208a1df119bf2756230aa15ceefb",
      "tree": "f63f0bf9c2a1e021c10380dd5587f4a52f0b874a",
      "parents": [
        "f6151f4064f4dd4ffe46827053edf41c95799ea7",
        "0b516e94a79d7668056a7aef1bcd531c9cccda80"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@fitzpat.com",
        "time": "Mon Jul 11 03:44:34 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@fitzpat.com",
        "time": "Mon Jul 11 03:44:34 2011"
      },
      "message": "Merge pull request #1 from rhencke/master\n\nremove extra %d in printf"
    },
    {
      "commit": "0b516e94a79d7668056a7aef1bcd531c9cccda80",
      "tree": "f63f0bf9c2a1e021c10380dd5587f4a52f0b874a",
      "parents": [
        "f6151f4064f4dd4ffe46827053edf41c95799ea7"
      ],
      "author": {
        "name": "Robert Hencke",
        "email": "robert.hencke@gmail.com",
        "time": "Sat Jul 09 22:34:11 2011"
      },
      "committer": {
        "name": "Robert Hencke",
        "email": "robert.hencke@gmail.com",
        "time": "Sat Jul 09 22:34:11 2011"
      },
      "message": "remove extra %d in printf\n"
    },
    {
      "commit": "f6151f4064f4dd4ffe46827053edf41c95799ea7",
      "tree": "f55f675c325a98c7acf6cea46b45a673bda0848f",
      "parents": [
        "5a924ae1a182a8a01bcacac0306d04acefb89468",
        "08613593d6c9d5c26b1e2bc04ce30ca9454da968"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sun Jul 03 22:44:38 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sun Jul 03 22:44:38 2011"
      },
      "message": "Unix socket support.\n"
    },
    {
      "commit": "5a924ae1a182a8a01bcacac0306d04acefb89468",
      "tree": "9535b2d0f2410e8633dd4b99a1c6fee10ec8b490",
      "parents": [
        "60179d60f022433463eb25e868e404434f280add"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sun Jul 03 22:43:24 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Sun Jul 03 22:43:24 2011"
      },
      "message": "Unix socket support.\n"
    },
    {
      "commit": "08613593d6c9d5c26b1e2bc04ce30ca9454da968",
      "tree": "e191d575f8fa2fe8e8ae7d27f77a3332cabc5cfd",
      "parents": [
        "8e208d84a753d840d1dfc7c361cb8562670ed244"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 21:38:00 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 21:38:00 2011"
      },
      "message": "remove App Engine reference\n"
    },
    {
      "commit": "8e208d84a753d840d1dfc7c361cb8562670ed244",
      "tree": "01626c56ba293f702e8b9f97cc78dee83e9a01f1",
      "parents": [
        "71d4772f53c94b08e43e5b37d41163c5f4fb6160"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 19:22:15 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 19:22:15 2011"
      },
      "message": "Add Increment \u0026 Decrement\n"
    },
    {
      "commit": "71d4772f53c94b08e43e5b37d41163c5f4fb6160",
      "tree": "94ed736c67300b7319abfaf3d333e2f3f253c548",
      "parents": [
        "60179d60f022433463eb25e868e404434f280add"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 17:13:08 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 17:13:08 2011"
      },
      "message": "ditch DeleteLock, it\u0027s old\n"
    },
    {
      "commit": "60179d60f022433463eb25e868e404434f280add",
      "tree": "018ee3671d6618b8eca5b5b41a2fc2634ec41c4d",
      "parents": [
        "1a17ac6979b283dd45da97cf6d5cfb1415f30e4a"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 05:01:07 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 05:01:07 2011"
      },
      "message": "Remove the auto-generated godoc. These will only rot.\n"
    },
    {
      "commit": "1a17ac6979b283dd45da97cf6d5cfb1415f30e4a",
      "tree": "01d042d04c523f4e06b4323385d2088e65b0549b",
      "parents": [
        "ee3747d4b7e03d69461ae69a35819d899650d5cf"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 04:53:08 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 04:53:08 2011"
      },
      "message": "Add timeouts to dials\n"
    },
    {
      "commit": "ee3747d4b7e03d69461ae69a35819d899650d5cf",
      "tree": "79f0cdacefa422c9d2c0b79d5a64a3658d80dfc2",
      "parents": [
        "42205f661a3ce4f0be5a7972cbabd8fe949991e5"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 04:31:01 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 04:31:01 2011"
      },
      "message": "Use gopkgdoc.appspot.com for docs.\n"
    },
    {
      "commit": "42205f661a3ce4f0be5a7972cbabd8fe949991e5",
      "tree": "3e55e18eae1b37e28715f56101db51bc830420c1",
      "parents": [
        "506c94f5bf6411003d5879d4c59f255c3af9354a"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 01:43:48 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 01:43:48 2011"
      },
      "message": "fix doc example\n"
    },
    {
      "commit": "506c94f5bf6411003d5879d4c59f255c3af9354a",
      "tree": "ef5e2c7b73c86371a747fd5ff0beb0134734324a",
      "parents": [
        "e89215ba88dbfff9ed0312c202bec8d1cdc1086b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 01:09:30 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 01:09:30 2011"
      },
      "message": "link to API\n"
    },
    {
      "commit": "e89215ba88dbfff9ed0312c202bec8d1cdc1086b",
      "tree": "df9b6bbb2d10d9d8d3cd5cc84d1ce4a2ddf2e99c",
      "parents": [
        "7412514adc19b2286c853afdce08a1797276ee42"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 00:49:02 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 00:49:02 2011"
      },
      "message": "more markdown\n"
    },
    {
      "commit": "7412514adc19b2286c853afdce08a1797276ee42",
      "tree": "5e21cfb4806fafc283e59189d04eccbd30420a81",
      "parents": [
        "d24b6cb707a796aed2cb8c589d13a4e42e8caeb1"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 00:39:08 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 00:39:08 2011"
      },
      "message": "more markdown work\n"
    },
    {
      "commit": "d24b6cb707a796aed2cb8c589d13a4e42e8caeb1",
      "tree": "6da2be6541587f9d0d39a351c36c662f6404761e",
      "parents": [
        "135e67f5aa48d904b41e488a404c1e7e2a822bbc"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 00:30:14 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 00:30:14 2011"
      },
      "message": "Start of a godoc markdown template.\n"
    },
    {
      "commit": "135e67f5aa48d904b41e488a404c1e7e2a822bbc",
      "tree": "a35466cb64357f8161ccdda2c2f8e111db818726",
      "parents": [
        "b1bf963f4cbae1e57e07b90955a9a528bfe73575"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 00:02:03 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Wed Jun 29 00:02:03 2011"
      },
      "message": "Update godoc.\n"
    },
    {
      "commit": "b1bf963f4cbae1e57e07b90955a9a528bfe73575",
      "tree": "346f8471bd5766a4bb6dea0ab0d344d3e0823634",
      "parents": [
        "cca20f10ed99e8fb19b70a4828cc6b7a17fca022"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:51:28 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:51:28 2011"
      },
      "message": "move gitignore up\n"
    },
    {
      "commit": "cca20f10ed99e8fb19b70a4828cc6b7a17fca022",
      "tree": "af26913c893c46583b5ec988b744056705a77152",
      "parents": [
        "10482c4224c3b4cff5ad8b744ff0cb485a8f6884"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:50:30 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:50:41 2011"
      },
      "message": "fix TARG; move files up\n"
    },
    {
      "commit": "10482c4224c3b4cff5ad8b744ff0cb485a8f6884",
      "tree": "27f7530ace15c5b25f4f320dd5c96bd37d9b58f2",
      "parents": [
        "dba29da3d8f43a778daf60ad0e5d2b6b594e3f15"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:48:56 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:48:56 2011"
      },
      "message": "godoc html\n"
    },
    {
      "commit": "dba29da3d8f43a778daf60ad0e5d2b6b594e3f15",
      "tree": "c838d1fc807ae7c31f25012b82dc9a7d6ea43dcb",
      "parents": [
        "d0b04728d8f885cb07a97eb44c39cdba90e717fc"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:48:34 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:48:34 2011"
      },
      "message": "more README work\n"
    },
    {
      "commit": "d0b04728d8f885cb07a97eb44c39cdba90e717fc",
      "tree": "228a27a00d6877c2b3b15a285b48902fb713e921",
      "parents": [
        "ebad2bfad9a506ba9007a8c2cf4805139db6608f"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:24:43 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:24:43 2011"
      },
      "message": "Rename the README to be markdown\n"
    },
    {
      "commit": "ebad2bfad9a506ba9007a8c2cf4805139db6608f",
      "tree": "016dff3659d9ae639bc7b4f170dfd7fb30b2e1bd",
      "parents": [
        "2b66e4272bfc083fa6e2f3abd3e3524e2e9e909f"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:18:30 2011"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "brad@danga.com",
        "time": "Tue Jun 28 23:18:30 2011"
      },
      "message": "Add .gitignore\n"
    }
  ],
  "next": "2b66e4272bfc083fa6e2f3abd3e3524e2e9e909f"
}
