)]}'
{
  "commit": "2a36720c18e744586d47324ad2accc310b51b0bc",
  "tree": "6c09bb6c3d21de1dc9697e69388c53f68d6cfb5c",
  "parents": [
    "524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f"
  ],
  "author": {
    "name": "Googler",
    "email": "noreply@google.com",
    "time": "Tue Apr 23 01:02:22 2019 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Apr 23 01:03:33 2019 -0700"
  },
  "message": "Refresh WorkspaceFileValue for WORKSPACE header, if listener is registered.\n\n- Define WorkspaceFileHeaderListener as interface with one method, accepting old and new values of WorkspaceFileValue for the WORKSPACE header.\n- In SequencedSkyframeExecutor, have WorkspaceFileHeaderListener field and the setter method for it. (In future, set it using WorkspaceBuilder, and expose a method in WorkspaceBuilder for setting.)\n- If there is a listener, compute the new value of the WorkspaceFileValue for the WORKSPACE header, if the WORKSPACE file has changed since the previous invocation, and call the listener if the old and new values are different.\n- In practice, every time the text of the WORKSPACE file is changed, the WorkspaceFileValue will be the different object, as the evaluation is called; so the listener should additionally check the interesting fields itself.\n\nPiperOrigin-RevId: 244810086\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8fb687040404aeb39a3a04906176431fcf050b07",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java",
      "new_id": "08f5fa150c919612a4c21fa23bc1d594ff3e5f69",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java"
    },
    {
      "type": "modify",
      "old_id": "a8ee477102a27a7d0839b1f9cdee99247d8c4cb9",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java",
      "new_id": "9df4bda1d3f617c69d4a4505e30662ae119f0b05",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java"
    },
    {
      "type": "modify",
      "old_id": "1e392e2c9f98e59f36757d5c038705df3775438f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java",
      "new_id": "620a77e006d135c42ef20f811ddaf63fcb09a736",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java"
    },
    {
      "type": "modify",
      "old_id": "540f760a072231846c6ca5624f9f18f0c2918fd6",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunctionTest.java",
      "new_id": "e8754f758ac4c902662f16ab8548dddc72d4dc2a",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunctionTest.java"
    }
  ]
}
