)]}'
{
  "commit": "b45ea595e6f6b03a749abc2c8e508504429a4cf3",
  "tree": "0d1402643c17e23d27e7d17334505f32de33e037",
  "parents": [
    "34c17b840d5bdb8060ef6309aee04f919616c9de"
  ],
  "author": {
    "name": "Patrick Steinhardt",
    "email": "ps@pks.im",
    "time": "Thu Apr 02 09:31:15 2026 +0200"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Apr 02 10:45:43 2026 -0700"
  },
  "message": "reftable/stack: provide fsync(3p) via system header\n\nUsers of the reftable library are expected to provide their own function\ncallback in cases they want to sync(3p) data to disk via the reftable\nwrite options. But if no such function was provided we end up calling\nfsync(3p) directly, which may not even be available on some systems.\n\nWhile dropping the explicit call to fsync(3p) would work, it would lead\nto an unsafe default behaviour where a project may have forgotten to set\nup the callback function, and that could lead to potential data loss. So\nthis is not a great solution.\n\nInstead, drop the callback function and make it mandatory for the\nproject to define fsync(3p). In the case of Git, we can then easily\ninject our custom implementation via the \"reftable-system.h\" header so\nthat we continue to use `fsync_component()`.\n\nSigned-off-by: Patrick Steinhardt \u003cps@pks.im\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b124404663edf67931b191e7ad74cd04347586bf",
      "old_mode": 33188,
      "old_path": "refs/reftable-backend.c",
      "new_id": "daea30a5b4cad91314b40b51d56b49a37720fc63",
      "new_mode": 33188,
      "new_path": "refs/reftable-backend.c"
    },
    {
      "type": "modify",
      "old_id": "4a18a6a790d737a3c5fa8e2617fa889acc9c408b",
      "old_mode": 33188,
      "old_path": "reftable/reftable-system.h",
      "new_id": "76f3e33e90139777b6db885b150182454f0215dc",
      "new_mode": 33188,
      "new_path": "reftable/reftable-system.h"
    },
    {
      "type": "modify",
      "old_id": "065dd93dc6bc613dcd109f0e9b4d3302923248d0",
      "old_mode": 33188,
      "old_path": "reftable/reftable-writer.h",
      "new_id": "a66db415c87637c3bf25004c919835f76074f93d",
      "new_mode": 33188,
      "new_path": "reftable/reftable-writer.h"
    },
    {
      "type": "modify",
      "old_id": "1c9f21dfe1eb45021836e1bb94d090a96b5fb5a6",
      "old_mode": 33188,
      "old_path": "reftable/stack.c",
      "new_id": "fa87b46c377af2b3b8d484309ef7b682e050b862",
      "new_mode": 33188,
      "new_path": "reftable/stack.c"
    },
    {
      "type": "modify",
      "old_id": "725a25844ea1797995d2f5f787ef32248dcbb0a9",
      "old_mode": 33188,
      "old_path": "reftable/system.c",
      "new_id": "4d7e366b55b6d6b5551732a74a4ac4189522dea1",
      "new_mode": 33188,
      "new_path": "reftable/system.c"
    }
  ]
}
