)]}'
{
  "commit": "2057d75038541cd16debb1c55f3f897fd244965c",
  "tree": "4c7999819d1c7ec909b13ed288236fdf08530798",
  "parents": [
    "887952b8c680626f4721cb5fa57704478801aca4"
  ],
  "author": {
    "name": "Derrick Stolee",
    "email": "dstolee@microsoft.com",
    "time": "Thu Sep 17 18:11:42 2020 +0000"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Sep 17 11:30:04 2020 -0700"
  },
  "message": "maintenance: create basic maintenance runner\n\nThe \u0027gc\u0027 builtin is our current entrypoint for automatically maintaining\na repository. This one tool does many operations, such as repacking the\nrepository, packing refs, and rewriting the commit-graph file. The name\nimplies it performs \"garbage collection\" which means several different\nthings, and some users may not want to use this operation that rewrites\nthe entire object database.\n\nCreate a new \u0027maintenance\u0027 builtin that will become a more general-\npurpose command. To start, it will only support the \u0027run\u0027 subcommand,\nbut will later expand to add subcommands for scheduling maintenance in\nthe background.\n\nFor now, the \u0027maintenance\u0027 builtin is a thin shim over the \u0027gc\u0027 builtin.\nIn fact, the only option is the \u0027--auto\u0027 toggle, which is handed\ndirectly to the \u0027gc\u0027 builtin. The current change is isolated to this\nsimple operation to prevent more interesting logic from being lost in\nall of the boilerplate of adding a new builtin.\n\nUse existing builtin/gc.c file because we want to share code between the\ntwo builtins. It is possible that we will have \u0027maintenance\u0027 replace the\n\u0027gc\u0027 builtin entirely at some point, leaving \u0027git gc\u0027 as an alias for\nsome specific arguments to \u0027git maintenance run\u0027.\n\nCreate a new test_subcommand helper that allows us to test if a certain\nsubcommand was run. It requires storing the GIT_TRACE2_EVENT logs in a\nfile. A negation mode is available that will be used in later tests.\n\nHelped-by: Jonathan Nieder \u003cjrnieder@gmail.com\u003e\nSigned-off-by: Derrick Stolee \u003cdstolee@microsoft.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ee509a2ad263989fcebe3c3543aa32efed1cacda",
      "old_mode": 33188,
      "old_path": ".gitignore",
      "new_id": "a5808fa30d3e32b0b241783295d4e8094a1a437f",
      "new_mode": 33188,
      "new_path": ".gitignore"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ff47fb3641f807c4007b602941923f9cf535a480",
      "new_mode": 33188,
      "new_path": "Documentation/git-maintenance.txt"
    },
    {
      "type": "modify",
      "old_id": "a5ae15bfe54b652465b0164872923c8386d03ae9",
      "old_mode": 33188,
      "old_path": "builtin.h",
      "new_id": "17c1c0ce49d4eabc26b27be26a2a0d981b3107f9",
      "new_mode": 33188,
      "new_path": "builtin.h"
    },
    {
      "type": "modify",
      "old_id": "aafa0946f5245792a573c6e8d0326a72fa815df7",
      "old_mode": 33188,
      "old_path": "builtin/gc.c",
      "new_id": "ec064e86867b35dc51e237c0f144d60ed2d8f5cc",
      "new_mode": 33188,
      "new_path": "builtin/gc.c"
    },
    {
      "type": "modify",
      "old_id": "e5901f2213319e065bf6e92b8b559b9c8bd8bf7e",
      "old_mode": 33188,
      "old_path": "command-list.txt",
      "new_id": "0e3204e7d1a08a15e5b7661fd35fd3048a7472ba",
      "new_mode": 33188,
      "new_path": "command-list.txt"
    },
    {
      "type": "modify",
      "old_id": "8bd1d7551daa28dcde69935046a055243c4b4d99",
      "old_mode": 33188,
      "old_path": "git.c",
      "new_id": "24f250d29a11b3fa8aa4fafddf2b78602d916d88",
      "new_mode": 33188,
      "new_path": "git.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c2f0b1d0c0d9c4f03ca216063df6c126d31c180b",
      "new_mode": 33261,
      "new_path": "t/t7900-maintenance.sh"
    },
    {
      "type": "modify",
      "old_id": "6a8e194a99088f13e1c5a449686804a7a6611d99",
      "old_mode": 33188,
      "old_path": "t/test-lib-functions.sh",
      "new_id": "d805e73f45e7119a9ea91fedccb670b65e7cc4d1",
      "new_mode": 33188,
      "new_path": "t/test-lib-functions.sh"
    }
  ]
}
