)]}'
{
  "commit": "c0a8c58b9230a1f5d76269eb7dc6b11e18f19686",
  "tree": "fe0f0c4161987fc24db93d6caa08cfc8228ec8c3",
  "parents": [
    "84450b8c1a6d9a5cb47032d00aac851741fc94ad"
  ],
  "author": {
    "name": "Francois-Rene Rideau",
    "email": "tunes@google.com",
    "time": "Thu Jan 28 18:36:22 2016 +0000"
  },
  "committer": {
    "name": "Kristina Chodorow",
    "email": "kchodorow@google.com",
    "time": "Fri Jan 29 14:41:09 2016 +0000"
  },
  "message": "Make Skylark dicts mutable\n\nRepresent Skylark dict using a new subclass SkylarkDict\u003cK, V\u003e of Map\u003cK, V\u003e.\nBack it with a TreeMap to provide a deterministic iteration order.\nAlso make SkylarkList generic in its element type \u003cE\u003e.\nHave Artifact implement Comparable\u003cObject\u003e so it can be used as TreeMap key.\n\n--\nMOS_MIGRATED_REVID\u003d113277489\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "24bece9edd5d5a22d0df2f4473c567a79177f5a1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/actions/Artifact.java",
      "new_id": "6473cdca8efa844a4f2dd2deb751c55561a4ac88",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/actions/Artifact.java"
    },
    {
      "type": "modify",
      "old_id": "61e88e15657da1de1402c98654d4bac780be2bf3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java",
      "new_id": "bf51a301b42dfbcb0c28f2b57767a97a21ee432d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java"
    },
    {
      "type": "modify",
      "old_id": "62e9b614b6f6f1074348fd7495c1f6f4ae4b9ec9",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/ConfigurationMakeVariableContext.java",
      "new_id": "5629c83a60d7a185c84f293fe5d3b770800cde62",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/ConfigurationMakeVariableContext.java"
    },
    {
      "type": "modify",
      "old_id": "d9c855a32af4075e5a2eb69c2c446a57b7cbd845",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRule.java",
      "new_id": "c1382c07c22ce20a09a41594ef9459992bc9c9df",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRule.java"
    },
    {
      "type": "modify",
      "old_id": "d198df2e4fd957f99950b9801e46c74f46a7170e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java",
      "new_id": "f8ad17c0538ac067143d5f671949e80563c3fa49",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java"
    },
    {
      "type": "modify",
      "old_id": "dd80289ca5cc377dbefe45c02f9718fa32df89d6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/SkylarkNativeModule.java",
      "new_id": "cecb714ac76bb147109eca2a5f5a51722476c994",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/SkylarkNativeModule.java"
    },
    {
      "type": "modify",
      "old_id": "aa2fef91d558f15d83fa9d637eed345b02c0b2c8",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java",
      "new_id": "6eb1abc72cecf2813b88871e975b7496137090ff",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java"
    },
    {
      "type": "modify",
      "old_id": "bfe75ec7ae397bd52a3e42fbde5fe181d3b36c51",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java",
      "new_id": "2c5cc0140ba345d749fbf5d6471c23ce8e9f8e0f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java"
    },
    {
      "type": "modify",
      "old_id": "c57f48e732331cd5f83a43e7ed2fa09e9394bfe2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java",
      "new_id": "32f812508ab2eb77145ff4266d99ce6150290e0a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java"
    },
    {
      "type": "modify",
      "old_id": "4103b81613bd6c17e182dec5b8217f550d4f9a26",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java",
      "new_id": "7b69e37684e2e20a9f6272c5744c7ec1b5e32f92",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java"
    },
    {
      "type": "modify",
      "old_id": "9ceb880118e60b01709bf8bd21800e3acb9370fe",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/AbstractComprehension.java",
      "new_id": "b5680bf57674af76ce0711883c51d6b588730589",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/AbstractComprehension.java"
    },
    {
      "type": "modify",
      "old_id": "662ac2f2599973ef492827def612dca234cb8e59",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/BaseFunction.java",
      "new_id": "942bf9265715a6db4c158bce8fc4b07ce5259e75",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/BaseFunction.java"
    },
    {
      "type": "modify",
      "old_id": "fc1fe9afbb30e6de6baa88aec286e395f9f72646",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java",
      "new_id": "a31b037601e8e453fa34c262c1663dce10e8fe6f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java"
    },
    {
      "type": "modify",
      "old_id": "c85cc234c872503b2ff2a4b0d1e64084bb7efb31",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/DictComprehension.java",
      "new_id": "349e8f53eadfa04390bb4629c019e5562de10016",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/DictComprehension.java"
    },
    {
      "type": "modify",
      "old_id": "8a223ed582f2b580764a64d1f379c5d18a5fb130",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java",
      "new_id": "3ab31263f1b66fd223b38c3ba48854ac4d1c3a5b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java"
    },
    {
      "type": "modify",
      "old_id": "0d001d301621a28d61d533c1c6a811f1acbf2f41",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java",
      "new_id": "c4620983735cfee84b48218274e2165071429178",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java"
    },
    {
      "type": "modify",
      "old_id": "f2543cb58108b281e7602f7d6713fc2519bf9f87",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/FunctionSignature.java",
      "new_id": "b858d35ed52e7bee4935decbcc8b526ac645f38c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/FunctionSignature.java"
    },
    {
      "type": "modify",
      "old_id": "1f031d9cc26e37e7af3fdbdb8a345906e6299da3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/LValue.java",
      "new_id": "729dd0c16031a3536d139ebce3247f97ccc211c9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/LValue.java"
    },
    {
      "type": "modify",
      "old_id": "749b056f84c64b4c4ca22a9d98fe9c8612e6ec37",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/ListComprehension.java",
      "new_id": "cfcbe12a976004b638cc4407249567f9cf876272",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/ListComprehension.java"
    },
    {
      "type": "modify",
      "old_id": "b552c1108d699ad81be375e1c0ce5d5bb037e673",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java",
      "new_id": "52231c9a9283886c6a0d9bd9136425ec5716245f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java"
    },
    {
      "type": "modify",
      "old_id": "b24e188f9c7332c7a97844a690af9637bac6c0ed",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Runtime.java",
      "new_id": "f4b55ad4c44f826d15757e6695986d34de097ac0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Runtime.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3a856b23ffbf1668721e95353556b9282b4df5bb",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkDict.java"
    },
    {
      "type": "modify",
      "old_id": "fddebba162196eedd799c5ed71374cb142197e18",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkList.java",
      "new_id": "102cd31dfdcc89aac7855109d54ed7babf06ff64",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkList.java"
    },
    {
      "type": "modify",
      "old_id": "afa107a3278fc90c2f69b8374fd7ea3e15b3b47c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkMutable.java",
      "new_id": "dd9b91a64ffa8615f242887a6383186f712864c9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkMutable.java"
    },
    {
      "type": "modify",
      "old_id": "b00413c0c8cbd547a29517eae641e1ecfaef4518",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java",
      "new_id": "f3e8c59df2fb965e76068f8474c09e59ef640c44",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java"
    },
    {
      "type": "modify",
      "old_id": "21ea3f8d3d9c6aceb4484115d89e196e66f3798f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java",
      "new_id": "a90ba7e975e965a046437d872f0c601f54778a5b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java"
    },
    {
      "type": "modify",
      "old_id": "55e9cc1bf634002f33853a028a75d8154defe54f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/compiler/ByteCodeMethodCalls.java",
      "new_id": "28bd503ed559efa87e6751631bd19979c55145d0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/compiler/ByteCodeMethodCalls.java"
    },
    {
      "type": "modify",
      "old_id": "2fb7db04af19ed391166f51e1c0fd6745d22d55c",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java",
      "new_id": "ae3de804594e41fa6f34f367f57fbbc71c587703",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java"
    },
    {
      "type": "modify",
      "old_id": "709557ab8fd9c9d28b7cc18d2c346a980af4c233",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java",
      "new_id": "bfe8c7072c9953dc102733e97da918206d6b4090",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java"
    },
    {
      "type": "modify",
      "old_id": "4989cbd9004c45785b639a52c1ab36e34e48cfb1",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java",
      "new_id": "cd0129dd7036ead9118aa22e41920e4ac0ec3a9b",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java"
    },
    {
      "type": "modify",
      "old_id": "7a1033838ed52508d8915ffd6095b194782db819",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java",
      "new_id": "4396608f66e69bf1e74cf40bb3a6b13f4b7a72df",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java"
    },
    {
      "type": "modify",
      "old_id": "a894ddfe64fd6adbaf5927fa2cdd8e6605068039",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java",
      "new_id": "7bbe8eafa725f04a13bee2a1987bcff9b29f8cba",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java"
    },
    {
      "type": "modify",
      "old_id": "e2f4ca79760b7e75e7a4b7ac303e52fdaec39dff",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java",
      "new_id": "1c32c4bbd92584fd4d0e8fcd023215848b8baf0c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java"
    },
    {
      "type": "modify",
      "old_id": "4c6eb6ac63467c593bffa683d33175fff407d5f0",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java",
      "new_id": "c44e5c918bcd83cce2e0b421d193144c325e76e6",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java"
    }
  ]
}
