)]}'
{
  "commit": "1ac2693a33bb65c6b0d777584ad8024aa743ee88",
  "tree": "3cf6108d0daf072726805e4379fde73af0818201",
  "parents": [
    "df2fc6a9df06dcf334000a66c1173413883e1aba"
  ],
  "author": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Mon Nov 18 20:48:22 2013 +0400"
  },
  "committer": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Mon Nov 18 20:48:22 2013 +0400"
  },
  "message": "Upstream: cache revalidation with conditional requests.\n\nThe following new directives are introduced: proxy_cache_revalidate,\nfastcgi_cache_revalidate, scgi_cache_revalidate, uwsgi_cache_revalidate.\nDefault is off.  When set to on, they enable cache revalidation using\nconditional requests with If-Modified-Since for expired cache items.\n\nAs of now, no attempts are made to merge headers given in a 304 response\nduring cache revalidation with headers previously stored in a cache item.\nHeaders in a 304 response are only used to calculate new validity time\nof a cache item.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dd79418a2781f1a2d683999f76edb4812308af0b",
      "old_mode": 33188,
      "old_path": "src/http/modules/ngx_http_fastcgi_module.c",
      "new_id": "51672e227159997251d6705a91d5a17dbdbf4c3a",
      "new_mode": 33188,
      "new_path": "src/http/modules/ngx_http_fastcgi_module.c"
    },
    {
      "type": "modify",
      "old_id": "cf68711cd30d03c814a95b63a58ef32f9609990f",
      "old_mode": 33188,
      "old_path": "src/http/modules/ngx_http_proxy_module.c",
      "new_id": "404607511420ac9ff3ef835ba39feb137a37e8dd",
      "new_mode": 33188,
      "new_path": "src/http/modules/ngx_http_proxy_module.c"
    },
    {
      "type": "modify",
      "old_id": "f9c0d14278ed691908aa3666e7ce5cbaf7060fde",
      "old_mode": 33188,
      "old_path": "src/http/modules/ngx_http_scgi_module.c",
      "new_id": "9163c6b3c2422e4996cb9084297433648bc934b9",
      "new_mode": 33188,
      "new_path": "src/http/modules/ngx_http_scgi_module.c"
    },
    {
      "type": "modify",
      "old_id": "0635299e839be7093b16d65c0acbffdfe374f3a1",
      "old_mode": 33188,
      "old_path": "src/http/modules/ngx_http_uwsgi_module.c",
      "new_id": "9c5d7621330be6dff57a7ce08e19e3a19b182cb5",
      "new_mode": 33188,
      "new_path": "src/http/modules/ngx_http_uwsgi_module.c"
    },
    {
      "type": "modify",
      "old_id": "2a2d722915364004feace71009c66e108cc3b8ea",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_cache.h",
      "new_id": "193a35322b54520287f6e5112aa93c64210314f8",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_cache.h"
    },
    {
      "type": "modify",
      "old_id": "7e46d1295935eac8510729a2a9ade7366e1404e0",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_file_cache.c",
      "new_id": "9e6be15844a2d9aeebb361400a5bd3686709bd0b",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_file_cache.c"
    },
    {
      "type": "modify",
      "old_id": "88d84c9ccc792c980e21d88698d89aad644d4db7",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_upstream.c",
      "new_id": "9570ccc7eeff8ea4cd69b7b6b66d4d79a0be3170",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_upstream.c"
    },
    {
      "type": "modify",
      "old_id": "fd4e36b1f8c1256a62dd69d8603e728fc5bd9b27",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_upstream.h",
      "new_id": "469988eed6c6072e17643c61b6ca5ebb2c5be39f",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_upstream.h"
    }
  ]
}
