)]}'
{
  "commit": "113d62b141a80bf136268df51b4597dbec4355d0",
  "tree": "62edfa72f582fbd34b91cf26664a018f8515aacd",
  "parents": [
    "41365c2a9ba347870b80881c0d67454edd22fd49"
  ],
  "author": {
    "name": "Shlok Kulshreshtha",
    "email": "diy2903@gmail.com",
    "time": "Tue Jul 21 12:27:36 2026 +0530"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Jul 23 07:14:34 2026 -0700"
  },
  "message": "userdiff: add support for Swift\n\nAdd a built-in userdiff driver for the Swift programming language so that\ndiff hunk headers and word diffs work out of the box for \".swift\" files.\n\nThe funcname pattern is built for Swift\u0027s own declaration grammar: an\noptional run of attributes (\"@objc\", \"@available(iOS 13, *)\", ...),\nfollowed by an optional run of lowercase modifiers (\"public\", \"static\",\n\"final\", ...), followed by a declaration keyword (func, class, struct,\nenum, protocol, extension, actor, init, deinit, subscript). The keyword\nis followed by a boundary that allows whitespace, \"(\" (init/subscript),\n\"?\" or \"!\" (failable init), or \"\u003c\" (generics), while still acting as a\nword boundary so e.g. \"initialize(\" does not match.\n\nThe word regex recognizes Swift identifiers, hexadecimal, octal, binary,\ninteger and floating-point literals, and the language\u0027s operators.\n\nSigned-off-by: Shlok Kulshreshtha \u003cdiy2903@gmail.com\u003e\nAcked-by: Johannes Sixt \u003cj6t@kdbg.org\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bd76167a45eb716cbeecefb030ec307ccf7ae01a",
      "old_mode": 33188,
      "old_path": "Documentation/gitattributes.adoc",
      "new_id": "9fea75f96f928fa1e5f0d96efa43c93f18b319bf",
      "new_mode": 33188,
      "new_path": "Documentation/gitattributes.adoc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e4852f40a7ebd88e81714eb2cbc54a1b27b2dd97",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-actor"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "22b1ee32f110bd9f92654854e84eea231d37fcb4",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-attribute-with-args"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c3a93360277f812ccb218835a03d253924c5a9e3",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-class"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0a843029930409c6374ea375c0011f91e14a7385",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-enum"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cbc18ab6ef42c8922b4654efaebfcfe9e0d6eb1a",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-extension"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4bbd6217c9147aabb5a092be644b67fa3bafbcd2",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-failable-init"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1fecae0911d41194473a7be240f465975de631ee",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-func"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "423cb589412ea5708261a8f41d5895ba499d6016",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-generic-subscript"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dc7a298f3806b5aad7d2eabf2509eb02c2d4da51",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-init"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2374c4b6036efad08b5aecc77403d55833477f10",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-inline-attribute"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9d80685a786beaefc2ce2b71e7d284eb2ce4132d",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-modifiers"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "07c39ec2a3ca89eb86363f471c7deb8196a8f99e",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-protocol"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e399ed77597656056d6843d68304c00606103168",
      "new_mode": 33188,
      "new_path": "t/t4018/swift-struct"
    },
    {
      "type": "modify",
      "old_id": "b5412e6bc3ecd390d71a31e4d884d66d2af6c910",
      "old_mode": 33188,
      "old_path": "userdiff.c",
      "new_id": "7129bf148266b7d53cf83465f6c916b4bcaf3014",
      "new_mode": 33188,
      "new_path": "userdiff.c"
    }
  ]
}
