)]}'
{
  "commit": "12a19eec1d7c0121e0c82c95a2300fdbad1f18f2",
  "tree": "e11b5b9d5089f3b9b31be948cba2dc3c724bbaae",
  "parents": [
    "7dcbd35a120c04e30462407c4c9446aaaba9068f"
  ],
  "author": {
    "name": "Calvin Wan",
    "email": "calvinwan@google.com",
    "time": "Fri Jul 24 12:54:22 2026 +0200"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Fri Jul 24 08:46:59 2026 -0700"
  },
  "message": "transport: add client support for object-info\n\nSometimes, it is beneficial to retrieve information about an object\nwithout downloading it entirely. The server-side logic for this\nfunctionality was implemented in commit \"a2ba162cda (object-info:\nsupport for retrieving object info, 2021-04-20).\" And the wire\nformat is documented at\nhttps://git-scm.com/docs/protocol-v2#_object_info.\n\nIntroduce client-side support for the object-info capability.\n\nAdd its own function for object-info separate from existing fetch\ninfrastructure.\n\nCurrently, the client supports requesting a list of OIDs with the size\nattribute from a v2 server. If the server does not advertise this\nfeature (i.e., transfer.advertiseobjectinfo is set to false), the client\nreturns an error and exits.\n\nNote that:\n\n1. The entire request is written into req_buf before being sent to the\n   remote. This approach follows the pattern used in the\n   send_fetch_request() logic within \u0027fetch-pack.c\u0027. Streaming the\n   request is not addressed in this patch.\n\n2. A new field \u0027unrecognized\u0027 has been added to object_info. This new\n   field is set at fetch_object_info() when the object is unrecognized\n   by the server.\n\nHelped-by: Jonathan Tan \u003cjonathantanmy@google.com\u003e\nHelped-by: Christian Couder \u003cchriscool@tuxfamily.org\u003e\nSigned-off-by: Calvin Wan \u003ccalvinwan@google.com\u003e\nSigned-off-by: Eric Ju \u003ceric.peijian@gmail.com\u003e\nSigned-off-by: Pablo Sabater \u003cpabloosabaterr@gmail.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1f3f099f5c5705e96bd51ef87e9edc4be6782ba6",
      "old_mode": 33188,
      "old_path": "Makefile",
      "new_id": "d450e0277e42421817bf8ae0c7de352e8669f4ef",
      "new_mode": 33188,
      "new_path": "Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "30475a1e873d613527da8d1081f727c0b1bb36bd",
      "new_mode": 33188,
      "new_path": "fetch-object-info.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "31aad98408a29bddfbc99cdd0b6a131bea6e913d",
      "new_mode": 33188,
      "new_path": "fetch-object-info.h"
    },
    {
      "type": "modify",
      "old_id": "9434b56960ba80aab63e36a17ffc30cb8b5c1ef7",
      "old_mode": 33188,
      "old_path": "meson.build",
      "new_id": "dfefcd3475bb7648437fc76c6615a305124bc79c",
      "new_mode": 33188,
      "new_path": "meson.build"
    },
    {
      "type": "modify",
      "old_id": "94754643d249970ba7224d72ba277783836e5272",
      "old_mode": 33188,
      "old_path": "odb.h",
      "new_id": "88a37febbfa479b858f48aa99b657dea7f555383",
      "new_mode": 33188,
      "new_path": "odb.h"
    },
    {
      "type": "modify",
      "old_id": "f1950707883dbc06cbc6c74fd7e584844770d77b",
      "old_mode": 33188,
      "old_path": "transport-helper.c",
      "new_id": "623463dcea891ac65d90d4858e413d6005d00779",
      "new_mode": 33188,
      "new_path": "transport-helper.c"
    },
    {
      "type": "modify",
      "old_id": "051f3ab0dc95ec714235252685d160fe7b9c1152",
      "old_mode": 33188,
      "old_path": "transport-internal.h",
      "new_id": "60db0bedcdb9ae32240599f91ca9a7dd2df9695d",
      "new_mode": 33188,
      "new_path": "transport-internal.h"
    },
    {
      "type": "modify",
      "old_id": "fc144f0aedabd9f685f201ce0227e0154421ea3e",
      "old_mode": 33188,
      "old_path": "transport.c",
      "new_id": "93426805318e360740ffaed14453f106f8138b80",
      "new_mode": 33188,
      "new_path": "transport.c"
    },
    {
      "type": "modify",
      "old_id": "7e5867cffaaa4a96c16364b799550116c557e8ab",
      "old_mode": 33188,
      "old_path": "transport.h",
      "new_id": "a7869d18e020fb46f253e71bdf246d17aff9bdd7",
      "new_mode": 33188,
      "new_path": "transport.h"
    }
  ]
}
