)]}'
{
  "commit": "3c1e2c2113842b8462803ef8c9aca596eacfd3af",
  "tree": "e06d12e0d42ef93e7ecbd59219be19f87c81cc6f",
  "parents": [
    "37dc6d81042ac41437163264e7a29d3bf50c8d90"
  ],
  "author": {
    "name": "Taylor Blau",
    "email": "me@ttaylorr.com",
    "time": "Tue Oct 03 17:54:19 2023 -0400"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Oct 05 13:26:11 2023 -0700"
  },
  "message": "builtin/repack.c: avoid making cruft packs preferred\n\nWhen doing a `--geometric` repack, we make sure that the preferred pack\n(if writing a MIDX) is the largest pack that we *didn\u0027t* repack. That\nhas the effect of keeping the preferred pack in sync with the pack\ncontaining a majority of the repository\u0027s reachable objects.\n\nBut if the repository happens to double in size, we\u0027ll repack\neverything. Here we don\u0027t specify any `--preferred-pack`, and instead\nlet the MIDX code choose.\n\nIn the past, that worked fine, since there would only be one pack to\nchoose from: the one we just wrote. But it\u0027s no longer necessarily the\ncase that there is one pack to choose from. It\u0027s possible that the\nrepository also has a cruft pack, too.\n\nIf the cruft pack happens to come earlier in lexical order (and has an\nearlier mtime than any non-cruft pack), we\u0027ll pick that pack as\npreferred. This makes it impossible to reuse chunks of the reachable\npack verbatim from pack-objects, so is sub-optimal.\n\nLuckily, this is a somewhat rare circumstance to be in, since we would\nhave to repack the entire repository during a `--geometric` repack, and\nthe cruft pack would have to sort ahead of the pack we just created.\n\nSigned-off-by: Taylor Blau \u003cme@ttaylorr.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "04770b15fe7ee21727fdda173bbabdb5f5760d73",
      "old_mode": 33188,
      "old_path": "builtin/repack.c",
      "new_id": "a1a893d9524fd175bfe0793f5e1e0e0aea3a3947",
      "new_mode": 33188,
      "new_path": "builtin/repack.c"
    },
    {
      "type": "modify",
      "old_id": "dc86ca8269bb1ac89d9e71f634dfd4f983dec33f",
      "old_mode": 33261,
      "old_path": "t/t7704-repack-cruft.sh",
      "new_id": "be3735dff0837a6050780082f3acc4e1f7da37dc",
      "new_mode": 33261,
      "new_path": "t/t7704-repack-cruft.sh"
    }
  ]
}
