)]}'
{
  "commit": "53fc14eb84817022685474fc08ed3a27f074d673",
  "tree": "18a5ee3d5093273c7dffe406775dc3ec800abdf0",
  "parents": [
    "3ded4d8610b409f2b8fc6bd3fa1b7d1f4221eb80"
  ],
  "author": {
    "name": "Branko Čibej",
    "email": "brane@apache.org",
    "time": "Mon Jan 12 17:00:45 2026 +0000"
  },
  "committer": {
    "name": "Branko Čibej",
    "email": "brane@apache.org",
    "time": "Mon Jan 12 17:00:45 2026 +0000"
  },
  "message": "On the serf_error_callbacks branch: Add Serf error callback handling\nusing a context callback with our session as the baton. Assumes that\nwe use one Serf context per ra_serf session, which is currently true.\n\n[in subversion/libsvn_ra_serf]\n* ra_serf.h\n  (svn_ra_serf__session_t::serf_error): New member.\n  (svn_ra_serf__wrap_err_stack): New prototype and debug-mode macro.\n* serf.c\n  (sess_error_callback): New; the Serf error callback.\n  (svn_ra_serf__open, ra_serf_dup_session): Register the callback when\n   the Serf context is created.\n* util.c: Optionally include serf_bucket_util.h; it declares the required\n   prototype for serf_default_readline().\n  (conn_setup): When a new Serf SSL context was created, tell it to use\n   our session\u0027s error callback.\n  (svn_ra_serf__context_run): Report errors collected from Serf.\n  (bucket_limited_readline): Put this function in a conditional block,\n   otherwise we get a warning about an unused function when experimental\n   Serf features are turned on.\n* util_error.c: Include stdarg.h.\n  (format_error_message): New; hoist error mesage formatting from\n   svn_ra_serf__wrap_err().\n  (svn_ra_serf__wrap_err): Delegate to format_error_message().\n  (svn_ra_serf__wrap_err_stack): Implement, using format_error_message().\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/subversion/branches/serf_error_callbacks@1931269 13f79535-47bb-0310-9956-ffa450edef68\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b850ea6fdbba68167409be3ece05a182f590b9ef",
      "old_mode": 33188,
      "old_path": "subversion/libsvn_ra_serf/ra_serf.h",
      "new_id": "ba98d5df46ba55666346af36a453110a3b17ada5",
      "new_mode": 33188,
      "new_path": "subversion/libsvn_ra_serf/ra_serf.h"
    },
    {
      "type": "modify",
      "old_id": "6ac78863f5e2f2ba562564fa0c9872a26fea2642",
      "old_mode": 33188,
      "old_path": "subversion/libsvn_ra_serf/serf.c",
      "new_id": "70241f9bd8d0dd7d9cca6ba21664bacbaacc0403",
      "new_mode": 33188,
      "new_path": "subversion/libsvn_ra_serf/serf.c"
    },
    {
      "type": "modify",
      "old_id": "415a0a7c33da1ebd9c55db88dfdbbfb376303da5",
      "old_mode": 33188,
      "old_path": "subversion/libsvn_ra_serf/util.c",
      "new_id": "ebd977a243349facc49753823c5e83d96797ca91",
      "new_mode": 33188,
      "new_path": "subversion/libsvn_ra_serf/util.c"
    },
    {
      "type": "modify",
      "old_id": "bce935ab245227ceeb563b0147fea3720c8b074e",
      "old_mode": 33188,
      "old_path": "subversion/libsvn_ra_serf/util_error.c",
      "new_id": "284df897acb31ee9f94af1183467b6233d9d2b2b",
      "new_mode": 33188,
      "new_path": "subversion/libsvn_ra_serf/util_error.c"
    }
  ]
}
