)]}'
{
  "commit": "e11584164f787095e99e6759f2f6e16e24683855",
  "tree": "a09603e9e0a7e702f853027ef71a3b0772098343",
  "parents": [
    "d2ef70e97acbda42204d589d0886be88314016c2"
  ],
  "author": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Mon Sep 23 19:37:13 2013 +0400"
  },
  "committer": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Mon Sep 23 19:37:13 2013 +0400"
  },
  "message": "Added ngx_filename_cmp() with \"/\" sorted to the left.\n\nThis patch fixes incorrect handling of auto redirect in configurations\nlike:\n\n    location /0  { }\n    location /a- { }\n    location /a/ { proxy_pass ... }\n\nWith previously used sorting, this resulted in the following locations\ntree (as \"-\" is less than \"/\"):\n\n        \"/a-\"\n    \"/0\"    \"/a/\"\n\nand a request to \"/a\" didn\u0027t match \"/a/\" with auto_redirect, as it\ndidn\u0027t traverse relevant tree node during lookup (it tested \"/a-\",\nthen \"/0\", and then falled back to null location).\n\nTo preserve locale use for non-ASCII characters on case-insensetive\nsystems, libc\u0027s tolower() used.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d3ff36855fb17a0fbc4b2da36a7da5e7b2b37dfc",
      "old_mode": 33188,
      "old_path": "src/core/ngx_string.c",
      "new_id": "fe6b1ee7136249ba27385e67fd27408fc7805694",
      "new_mode": 33188,
      "new_path": "src/core/ngx_string.c"
    },
    {
      "type": "modify",
      "old_id": "92d246ebcff417a878b9c1cc39d3c30250dfef0a",
      "old_mode": 33188,
      "old_path": "src/core/ngx_string.h",
      "new_id": "99bdbda6fa0db719102f01f8fffa0a8a460c7c10",
      "new_mode": 33188,
      "new_path": "src/core/ngx_string.h"
    },
    {
      "type": "modify",
      "old_id": "149778c29ad440976c57e1f95d3f633e7d8ef1a0",
      "old_mode": 33188,
      "old_path": "src/os/unix/ngx_darwin_config.h",
      "new_id": "7ac86c73e82a2e8af5d5aeb6ead37226df729914",
      "new_mode": 33188,
      "new_path": "src/os/unix/ngx_darwin_config.h"
    },
    {
      "type": "modify",
      "old_id": "df759df52f987ff9a00fec31f995f01701be36b8",
      "old_mode": 33188,
      "old_path": "src/os/unix/ngx_files.h",
      "new_id": "4b20165004d4c1449e16771fb89ca01a67d03ae6",
      "new_mode": 33188,
      "new_path": "src/os/unix/ngx_files.h"
    },
    {
      "type": "modify",
      "old_id": "248e7a731012bdf3e901f1626e392a00a8a354f7",
      "old_mode": 33188,
      "old_path": "src/os/unix/ngx_freebsd_config.h",
      "new_id": "92b2928c8b54cb4d38c1ef4ef622260cf0d97ee4",
      "new_mode": 33188,
      "new_path": "src/os/unix/ngx_freebsd_config.h"
    },
    {
      "type": "modify",
      "old_id": "8467a97fec95675884a75d28bb3a59f95eba44f1",
      "old_mode": 33188,
      "old_path": "src/os/unix/ngx_linux_config.h",
      "new_id": "72594bac0ea8b84ef3ba9bac41da4585435de193",
      "new_mode": 33188,
      "new_path": "src/os/unix/ngx_linux_config.h"
    },
    {
      "type": "modify",
      "old_id": "4cf90cc9897f70aff78d7ded89befdfd59616b81",
      "old_mode": 33188,
      "old_path": "src/os/unix/ngx_posix_config.h",
      "new_id": "d725659dfaccb0c82872e3467b819890db78c0dd",
      "new_mode": 33188,
      "new_path": "src/os/unix/ngx_posix_config.h"
    },
    {
      "type": "modify",
      "old_id": "e664ba826c003802d59f18f37614c8ff23811c0e",
      "old_mode": 33188,
      "old_path": "src/os/unix/ngx_solaris_config.h",
      "new_id": "ddfd984577ea0bacdb9cc870566554c67b25ca2d",
      "new_mode": 33188,
      "new_path": "src/os/unix/ngx_solaris_config.h"
    },
    {
      "type": "modify",
      "old_id": "a4624738f9f05056531b9af493fd4a1c30bdd590",
      "old_mode": 33188,
      "old_path": "src/os/win32/ngx_files.h",
      "new_id": "08e5dc67e3f22853f2efea143e6db1437b95fa7b",
      "new_mode": 33188,
      "new_path": "src/os/win32/ngx_files.h"
    },
    {
      "type": "modify",
      "old_id": "67105f1af5c20abe2f1f6c282bcea043bbc2e23f",
      "old_mode": 33188,
      "old_path": "src/os/win32/ngx_win32_config.h",
      "new_id": "fcbb308455e5a13e31d43d187f88aee1a7dbe457",
      "new_mode": 33188,
      "new_path": "src/os/win32/ngx_win32_config.h"
    }
  ]
}
