)]}'
{
  "commit": "eb26c3a044b0a31d4082fefaffea335d3f8551a3",
  "tree": "d7ea7415103163c437090e1d0da6566704b11eb4",
  "parents": [
    "255822c17bc24356b8ed0ab7a904458c6121380c"
  ],
  "author": {
    "name": "Harald Nordgren",
    "email": "haraldnordgren@gmail.com",
    "time": "Sat Oct 31 08:04:01 2026 +0000"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Sun Nov 01 09:44:55 2026 -0800"
  },
  "message": "remote: resolve \"simple\" @{push} when pushing to another remote\n\nWith push.default left at \"simple\", a branch whose upstream is on one\nremote and whose push remote is another gets pushed by \"git push\" to a\nbranch of the same name on the push remote. But @{push} for that\nbranch fails with \"cannot resolve \u0027simple\u0027 push to a single\ndestination\". As a result \"git status\" shows the \"git push\" hint under\nthe comparison with the upstream, even though \"git push\" goes\nelsewhere, and leaves out the comparison with the push branch when\nstatus.compareBranches asks for it.\n\n\"git push\" learned to handle \"simple\" this way in ed2b18292b (push:\nchange `simple` to accommodate triangular workflows, 2013-06-19). When\n@{push} was added in e291c75a95 (remote.c: add branch_get_push,\n2015-05-21), its \"simple\" case only covered pushing back to the remote\nthe branch is fetched from, where the upstream must have the same name.\n\nMake @{push} follow \"git push\". When the push remote is not the remote\nof the branch, resolve to the branch of the same name on the push\nremote, as \"current\" does.\n\nThe test added in 9bf9eed093 (remote: fix leak in branch_get_push_1()\nwith invalid \"simple\" config, 2026-01-19) relied on a different push\nremote being invalid for \"simple\". Use an upstream with a different\nname on the same remote instead, so that it still exercises the error\npath.\n\nSigned-off-by: Harald Nordgren \u003charaldnordgren@gmail.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d15d34aad725bfff453b2146aeeb19b2c8e4d440",
      "old_mode": 33188,
      "old_path": "remote.c",
      "new_id": "98665a3085fa49eef096f2edabb8936c920cbd8f",
      "new_mode": 33188,
      "new_path": "remote.c"
    },
    {
      "type": "modify",
      "old_id": "b1a10dd9332b3998a5da9d4c5414ef51071f33e4",
      "old_mode": 33188,
      "old_path": "t/for-each-ref-tests.sh",
      "new_id": "4991a82b913ca5981fe7f8ef470f4d68efa9f8f1",
      "new_mode": 33188,
      "new_path": "t/for-each-ref-tests.sh"
    },
    {
      "type": "modify",
      "old_id": "5a4f16867a3879674e82d994bf813fd4ae273f24",
      "old_mode": 33261,
      "old_path": "t/t1514-rev-parse-push.sh",
      "new_id": "dc2df7eb8098a58079a2ae421f5586faa8c92ad5",
      "new_mode": 33261,
      "new_path": "t/t1514-rev-parse-push.sh"
    }
  ]
}
