)]}'
{
  "commit": "71a8dee3af3de01fc2b2a4db4411ef78fded96d4",
  "tree": "af680e3e893441d17328193390e143fe81ca4756",
  "parents": [
    "05c0836204d7d4a7c8fe20e081495090d720184e"
  ],
  "author": {
    "name": "Ben Rohlfs",
    "email": "brohlfs@google.com",
    "time": "Tue Jun 22 10:06:15 2021 +0200"
  },
  "committer": {
    "name": "Ben Rohlfs",
    "email": "brohlfs@google.com",
    "time": "Tue Jun 22 13:47:59 2021 +0200"
  },
  "message": "Fix obsolete change views taking over again\n\nWe create one change view per change number. When the user navigates\nfrom one change to another (for example in the \"relation chain\" panel),\nthen a new change view is created and the old change view becomes\nobsolete.\n\nThe change view detects becoming obsolete when the router params change.\nBut it would still reload its data and while doing so potentially\ntrigger a navigation event, which could send the user back to the\nobsolete change. This change adds a check to loadData() and thus\nprevents the undesired navigation.\n\nThe change view was also checked that it does not emit navigation events\nin other locations. So the same or a similar bug might be lurking\nsomewhere, but at least not in an obvious fashion. :-)\n\nIn the future when we are changing more towards working with reactive\nobservables, we will then be able to add `takeUntil(obsolete$)` to all\nstate updates and event streams. That will eventually take care of the\nissue in a more appropriate and safer way.\n\nChange-Id: I0a6f8fd5250c12f4a572ecadbd62293bb97391c9\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4304734d06005eb652bb6c8beda806933e293923",
      "old_mode": 33188,
      "old_path": "polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts",
      "new_id": "2ede186e806646534b5a00c1ef995904759ccc07",
      "new_mode": 33188,
      "new_path": "polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts"
    },
    {
      "type": "modify",
      "old_id": "5128948a07773781f9ae824547adb8c05440aed5",
      "old_mode": 33188,
      "old_path": "polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts",
      "new_id": "7d47abbe56fb774e5b9b725690846a0aacc6a094",
      "new_mode": 33188,
      "new_path": "polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts"
    }
  ]
}
