)]}'
{
  "commit": "6cae753a4c58dab5dac3ae7e573a797426f6f32d",
  "tree": "91c3823876727d534f0f7b4765121212723f0488",
  "parents": [
    "742a046fd07bc7227f7db44f29eeefc9f4a3cb2f"
  ],
  "author": {
    "name": "Dave Borowitz",
    "email": "dborowitz@google.com",
    "time": "Thu Feb 14 17:11:25 2013 -0800"
  },
  "committer": {
    "name": "Dave Borowitz",
    "email": "dborowitz@google.com",
    "time": "Mon Mar 11 14:57:37 2013 -0700"
  },
  "message": "Access LabelTypes through ProjectState rather than globally\n\nWe want to allow projects to define their own labels, so we can\u0027t\nassume the label list is global. In typical cases, we can access it\nthrough a ProjectControl, ChangeControl, or related factory. This does\nresult in a few more places where we propagate\nNoSuchProject/ChangeExceptions where there were none before. This is\nintended: operations that query/modify labels on, say, a bare\nChange.Id now do need to verify that the project/change exists.\n\nFor now, leave code in LabelTypesProvider, but try not to inject\nLabelTypes where at all possible.\n\nChange-Id: I4936ccafdb41848aaac3e335adf4648369d6abbc\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4ace9f48d91a58d6a4b7b441ba34388b87455525",
      "old_mode": 33188,
      "old_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/ChangeDetailFactory.java",
      "new_id": "120b9af847cf6ada39bc91beca9fd914c8394740",
      "new_mode": 33188,
      "new_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/ChangeDetailFactory.java"
    },
    {
      "type": "modify",
      "old_id": "5e58a356567b862453af7f7a25a05c1748997967",
      "old_mode": 33188,
      "old_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/EditCommitMessageHandler.java",
      "new_id": "5b064c8576f235e6d617e63724645a3dc8059cac",
      "new_mode": 33188,
      "new_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/EditCommitMessageHandler.java"
    },
    {
      "type": "modify",
      "old_id": "4755c6f8b39e61babea6c95bb212220574dc35d4",
      "old_mode": 33188,
      "old_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetPublishDetailFactory.java",
      "new_id": "06c6964f38273d6ae3ee78fde6e60aae52901320",
      "new_mode": 33188,
      "new_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetPublishDetailFactory.java"
    },
    {
      "type": "modify",
      "old_id": "f57b29c449ac3bf26f46c05538a366cfebddab1b",
      "old_mode": 33188,
      "old_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PublishAction.java",
      "new_id": "38f8fc62bf9a4c7b481cc10c1844957a198f097d",
      "new_mode": 33188,
      "new_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PublishAction.java"
    },
    {
      "type": "modify",
      "old_id": "b47c8f2c3ff94e0ed140a6a62e2c9545cbe2603d",
      "old_mode": 33188,
      "old_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/RebaseChangeHandler.java",
      "new_id": "b9acfa9c6c10d5911eb00041cd734cea857485b7",
      "new_mode": 33188,
      "new_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/RebaseChangeHandler.java"
    },
    {
      "type": "modify",
      "old_id": "0177ac19c272caf7a9316395263db015c3e08ad5",
      "old_mode": 33188,
      "old_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchDetailServiceImpl.java",
      "new_id": "b019b58581313e3085388468539c6a6b647d1ff2",
      "new_mode": 33188,
      "new_path": "gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchDetailServiceImpl.java"
    },
    {
      "type": "modify",
      "old_id": "79a444509a8e7a394b22fd80813afb8a63c9eb6a",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/common/ChangeHookRunner.java",
      "new_id": "6e8639452fba50d2d610f118ba35c73942992c27",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/common/ChangeHookRunner.java"
    },
    {
      "type": "modify",
      "old_id": "078c2262d4836c7fe0c8ba1bad1c25f19f38f594",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/ApprovalsUtil.java",
      "new_id": "5fe9a871af7f29c1985887aae10dba1384eda639",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/ApprovalsUtil.java"
    },
    {
      "type": "modify",
      "old_id": "7127dce22fcccf30ebdfc8a9c6485405aa3fbce5",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java",
      "new_id": "480cd660259c02140c043017a025d31ff8985652",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java"
    },
    {
      "type": "modify",
      "old_id": "79083912a7fec0a996ff86ed4efad35633c0bba8",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java",
      "new_id": "f766297a6f2a442686fcfedc6f9e050f8cb3b823",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java"
    },
    {
      "type": "modify",
      "old_id": "bc8cc264e465e0e5123b33051f2fe0022c91fad1",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java",
      "new_id": "01c337cb870167dd1e5e432bcab067de89960e4f",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java"
    },
    {
      "type": "modify",
      "old_id": "bb38b9e382e717c3e84ff7f54a0c355bf6904976",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java",
      "new_id": "647853afb79a7cf14be631a76c438ed4ec2a53e5",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java"
    },
    {
      "type": "modify",
      "old_id": "c8f31a314c58d2ee4a51a3553450507eafdc9311",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java",
      "new_id": "c95f4edd0a4093924b53333b27d61f92d73f0dc8",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java"
    },
    {
      "type": "modify",
      "old_id": "7bae29379d5d0772657e02e03e1d4cf39622ae4e",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/Restore.java",
      "new_id": "afb58f9f99da4d061ed740bf1565fadef773491b",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/Restore.java"
    },
    {
      "type": "modify",
      "old_id": "c3c951d53531a9889823f169372f857d690e635f",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/ReviewerJson.java",
      "new_id": "2893cc3d6b7328e33cc8f39d22ad31392c146ced",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/change/ReviewerJson.java"
    },
    {
      "type": "modify",
      "old_id": "1cf0bd24c0bc39391855a9b7a3ac58004c2e37b5",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/changedetail/PublishDraft.java",
      "new_id": "22eae2d9fac9ecc8fc886e5345f62e5acdd0c70c",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/changedetail/PublishDraft.java"
    },
    {
      "type": "modify",
      "old_id": "98c0133f8bf197c71438b627736d6ba16cbfe50c",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/changedetail/RebaseChange.java",
      "new_id": "5c4fdcaf2db4fef74363c47f2a5bda4e53b0e8c1",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/changedetail/RebaseChange.java"
    },
    {
      "type": "modify",
      "old_id": "08ca057888ea0d90d1136f174678e94cca6f24bd",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/config/LabelTypesProvider.java",
      "new_id": "0aa396b1a9f8af7a2d91b61d057f690e47e92167",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/config/LabelTypesProvider.java"
    },
    {
      "type": "modify",
      "old_id": "7637e880aa618043419bf1dbad8ed58ad70178b7",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/events/EventFactory.java",
      "new_id": "acdbcc616c45cd874121f5ddc15a1e0cfdecaca5",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/events/EventFactory.java"
    },
    {
      "type": "modify",
      "old_id": "4a16399e70323eaa80309d47e0e25066488e21ea",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java",
      "new_id": "965d4e15e585adc6118119924eb77f11de91a785",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java"
    },
    {
      "type": "modify",
      "old_id": "cf541bb506ac6f908078d79db00bf6ea8f2fbdf8",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java",
      "new_id": "820e196f63aaa93df06cbd7abf18b9c76f9c9a89",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java"
    },
    {
      "type": "modify",
      "old_id": "093a7583d2ecab44ed102b0a5f456e6a9dcef9c8",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/SubmitStrategyFactory.java",
      "new_id": "f4cf6c530833f47acaca83d06d1a0fb8c352d492",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/SubmitStrategyFactory.java"
    },
    {
      "type": "modify",
      "old_id": "42f1dd33f25262c0c9db20c6a36915d62bbdb021",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/mail/MergedSender.java",
      "new_id": "2255584226279fde8be0c8a99aac1cf2109a9f83",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/mail/MergedSender.java"
    },
    {
      "type": "modify",
      "old_id": "6064560947249c1c601fe892488bce4c2454e8eb",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java",
      "new_id": "d0185dd8c02290229aa4b5ede48a495cacb3aeec",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java"
    },
    {
      "type": "modify",
      "old_id": "8f8d3152c67f77ae582e4fe18f0934f1be7332b1",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java",
      "new_id": "9cfdddd4399c72e57d0d2ed0c9282388f2b72314",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java"
    },
    {
      "type": "modify",
      "old_id": "e42be92fc4ed83e918c4d8fe1ef87d0ee1bf9e24",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java",
      "new_id": "42c69f2e7b2405b99a44e40b8498e984e4ba1ea6",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java"
    },
    {
      "type": "modify",
      "old_id": "e80fa331e82c02375ed0fd72c30e3c955c1a54ee",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java",
      "new_id": "7bbb073a6cbb420c8d7d83340c9c9e4163300b2c",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "761aba231a162a9321fe45ca739e0e8c1ef1573f",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryRewriter.java",
      "new_id": "e6251bc1a62937dfe033125cb3e3b3db3bdbe6c4",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryRewriter.java"
    },
    {
      "type": "modify",
      "old_id": "4fc48a5d6f7973e1d6b9ff68f9811c654f0fe0d3",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/query/change/LabelPredicate.java",
      "new_id": "e1bcb559b8bfd0d85504c1e143ce50934f7b9d41",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/query/change/LabelPredicate.java"
    },
    {
      "type": "modify",
      "old_id": "8ca0548b14e535309b93b6087a17750617faf4ed",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/query/change/QueryProcessor.java",
      "new_id": "c781d9791352a875b46d051dfe788f13429f0012",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/query/change/QueryProcessor.java"
    },
    {
      "type": "modify",
      "old_id": "a7a542230fcfc78b615f6d369dcc1beb21d1e8f5",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/workflow/FunctionState.java",
      "new_id": "6b9cb93099f3dd68f2f255e3c7a393cbb7bf14ec",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/workflow/FunctionState.java"
    },
    {
      "type": "modify",
      "old_id": "51ea5a2725e6fcc6bc49646307eed32c2223681e",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/test/java/com/google/gerrit/server/project/RefControlTest.java",
      "new_id": "f818746c151f7f41b83d4e2251f5388982160244",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/test/java/com/google/gerrit/server/project/RefControlTest.java"
    }
  ]
}
