)]}'
{
  "commit": "b5dd96b70aca364f163f0b3743418779cfe062e6",
  "tree": "74ce93ebb5a91a27a746a1c4cb91277e1dd09184",
  "parents": [
    "a04f6531099cabbbb94e3d7be0b3db0b718860ee"
  ],
  "author": {
    "name": "Jeff King",
    "email": "peff@peff.net",
    "time": "Thu Aug 13 10:58:55 2020 -0400"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Aug 13 11:02:08 2020 -0700"
  },
  "message": "make credential helpers builtins\n\nThere\u0027s no real reason for credential helpers to be separate binaries. I\ndid them this way originally under the notion that helper don\u0027t _need_\nto be part of Git, and so can be built totally separately (and indeed,\nthe ones in contrib/credential are). But the ones in our main Makefile\nbuild on libgit.a, and the resulting binaries are reasonably large.\n\nWe can slim down our total disk footprint by just making them builtins.\nThis reduces the size of:\n\n  make strip install\n\nfrom 29MB to 24MB on my Debian system.\n\nNote that credential-cache can\u0027t operate without support for Unix\nsockets. Currently we just don\u0027t build it at all when NO_UNIX_SOCKETS is\nset. We could continue that with conditionals in the Makefile and our\nlist of builtins. But instead, let\u0027s build a dummy implementation that\ndies with an informative message. That has two advantages:\n\n  - it\u0027s simpler, because the conditional bits are all kept inside\n    the credential-cache source\n\n  - a user who is expecting it to exist will be told _why_ they can\u0027t\n    use it, rather than getting the \"credential-cache is not a git\n    command\" error which makes it look like the Git install is broken.\n\nNote that our dummy implementation does still respond to \"-h\" in order\nto appease t0012 (and this may be a little friendlier for users, as\nwell).\n\nSigned-off-by: Jeff King \u003cpeff@peff.net\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "271b96348ecd54489bcabaac7c000b7b559369bd",
      "old_mode": 33188,
      "old_path": "Makefile",
      "new_id": "5b43c0fafb950c00f09f07db890b439c78b14fa0",
      "new_mode": 33188,
      "new_path": "Makefile"
    },
    {
      "type": "modify",
      "old_id": "a5ae15bfe54b652465b0164872923c8386d03ae9",
      "old_mode": 33188,
      "old_path": "builtin.h",
      "new_id": "4a0aed54484a687a3ce9ed3ce772a6fcc1d18ae5",
      "new_mode": 33188,
      "new_path": "builtin.h"
    },
    {
      "type": "rename",
      "old_id": "ec1271f89ce08b3b117fe09715f61730c7943bea",
      "old_mode": 33188,
      "old_path": "credential-cache--daemon.c",
      "new_id": "c61f123a3b81beef04d418142d0fae8b0ffd9dbe",
      "new_mode": 33188,
      "new_path": "builtin/credential-cache--daemon.c",
      "score": 90
    },
    {
      "type": "rename",
      "old_id": "1cccc3a0b9cfb2a14e9c87d5afc29234fa62adc4",
      "old_mode": 33188,
      "old_path": "credential-cache.c",
      "new_id": "d0fafdeb9ebc30b8ae75cae436223dedb759c179",
      "new_mode": 33188,
      "new_path": "builtin/credential-cache.c",
      "score": 83
    },
    {
      "type": "rename",
      "old_id": "294e77168156225efcb3b6840bc1dd7883c6dcac",
      "old_mode": 33188,
      "old_path": "credential-store.c",
      "new_id": "5331ab151a6f6052dc532ab32875f864070e3b72",
      "new_mode": 33188,
      "new_path": "builtin/credential-store.c",
      "score": 96
    },
    {
      "type": "modify",
      "old_id": "47215df25beaaa2a37749e13b407c55fef66c11c",
      "old_mode": 33188,
      "old_path": "contrib/buildsystems/CMakeLists.txt",
      "new_id": "4be61247e5b1a51672ae91740d1c9a57cb4fc74a",
      "new_mode": 33188,
      "new_path": "contrib/buildsystems/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "8bd1d7551daa28dcde69935046a055243c4b4d99",
      "old_mode": 33188,
      "old_path": "git.c",
      "new_id": "39a160fa5277a04a6527ed1d96e122f6c3b0e4e7",
      "new_mode": 33188,
      "new_path": "git.c"
    }
  ]
}
