)]}'
{
  "commit": "dd4bc01c0a8fc871a68a5027ed5ac953fa47fc6e",
  "tree": "39ce1c5d0a2606c15bf21fcda26e773d1948ada5",
  "parents": [
    "d877b1af507a6aaf55e8643eb73277a30d3a800b"
  ],
  "author": {
    "name": "Kristofer Karlsson",
    "email": "krka@spotify.com",
    "time": "Wed May 27 15:50:02 2026 +0000"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu May 28 06:08:20 2026 +0900"
  },
  "message": "revision: use priority queue for non-limited streaming walks\n\nThe streaming (non-limited) walk in get_revision_1() inserts newly\ndiscovered parent commits into a date-sorted queue via\ncommit_list_insert_by_date(), which scans the linked list to find the\ninsertion point -- O(w) per insert, where w is the width of the active\nwalk frontier.  Replace this with an O(log w) priority queue.\n\nAdd a commit_queue field to rev_info alongside the existing commits\nlinked list.  The two representations are mutually exclusive: setup\nand external callers that need list access use the linked list, then\nget_revision_1() lazily drains it into the priority queue on first\ncall.  Add a REV_WALK_NO_WALK enum value to distinguish the no_walk\ncase (which still uses the commit list) from the streaming case.\n\nThe conversion function rev_info_commit_list_to_queue() is public so\ncallers that know they will iterate can convert early.\n\nCombined with the limit_list() priority queue change already in\nmaster, this eliminates all O(w) sorted linked-list insertion from\nthe revision walk machinery.\n\nSigned-off-by: Kristofer Karlsson \u003ckrka@spotify.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e3e7352e69682d45e5b9ef609c656674fc03cb13",
      "old_mode": 33188,
      "old_path": "commit.c",
      "new_id": "5112c7b2af31b164469ebf528945ab025bc258d5",
      "new_mode": 33188,
      "new_path": "commit.c"
    },
    {
      "type": "modify",
      "old_id": "58150045afafed2dceaa952cbb9be7736dd800e8",
      "old_mode": 33188,
      "old_path": "commit.h",
      "new_id": "385492fbb1ecc558f5148827a47fb0058350796c",
      "new_mode": 33188,
      "new_path": "commit.h"
    },
    {
      "type": "modify",
      "old_id": "9d0fc696d09937986bab559c77b8d738d167e396",
      "old_mode": 33188,
      "old_path": "revision.c",
      "new_id": "4bb3b16e43acb9aec0d03e49eb54820162dd9f9b",
      "new_mode": 33188,
      "new_path": "revision.c"
    },
    {
      "type": "modify",
      "old_id": "584f1338b5e323820783a20372095a235f03e4e6",
      "old_mode": 33188,
      "old_path": "revision.h",
      "new_id": "04982a3d47f28fb6325f36877f38629bf0433491",
      "new_mode": 33188,
      "new_path": "revision.h"
    }
  ]
}
