)]}'
{
  "commit": "572ec4a5a52f1b4a712a291bf2b41c11ba943503",
  "tree": "2c2efabd2faffef6f5e305f4700f2bb7adf7e025",
  "parents": [
    "c7337154e97baa02015591d9ca143fa24cb45d28"
  ],
  "author": {
    "name": "Darius Rueckert",
    "email": "darius.rueckert@fau.de",
    "time": "Wed Dec 04 13:32:03 2019 +0100"
  },
  "committer": {
    "name": "Darius Rueckert",
    "email": "darius.rueckert@fau.de",
    "time": "Fri Dec 06 13:35:21 2019 +0100"
  },
  "message": "Rework Expression creation and insertion\n\nObjects of \u0027Expression\u0027 can now be freely created and copied around.\nThis creation does NOT add them to the active ExpressionGraph any\nmore. The insertion into the graph is now done by ExpressionRef,\nwhich explicitly call graph.add(...) in each operation.\n\nThis change brings the following advantages:\n\n1. \u0027Expression\u0027 is now stand-alone and side-effect free\n   - Remove the dependency Expression-\u003eExpressionGraph\n   - Expressions can be created by the optimizer\n\n2. Explicit graph insertion\n  - Previously CreateCompileTimeConstant not only created an\n    expression, but also inserted it into the active graph. Now\n    this insertion is done explicitly by ExpressionRef\n\n3. It is now easier to insert new types and members\n  - Should be straight forward now, because we got rid of the\n    3-way dependency\n  - This is a preparation patch for the new return-type member in\n    https://ceres-solver-review.googlesource.com/c/ceres-solver/+/16224\n\nChange-Id: Icef2fe529a4db001a10d1fb6816c9dc681b14ff2\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bf07a21db7688eeee8b35045871c67ba0d1649f2",
      "old_mode": 33188,
      "old_path": "include/ceres/codegen/internal/expression.h",
      "new_id": "7d93a4d32ef989e910e739039143c207e82da559",
      "new_mode": 33188,
      "new_path": "include/ceres/codegen/internal/expression.h"
    },
    {
      "type": "modify",
      "old_id": "22fbba634447d479b365c9e6d66f6cd8598a7dff",
      "old_mode": 33188,
      "old_path": "include/ceres/codegen/internal/expression_graph.h",
      "new_id": "30b5a78115bea12eaca461996cb26da32929a1d0",
      "new_mode": 33188,
      "new_path": "include/ceres/codegen/internal/expression_graph.h"
    },
    {
      "type": "modify",
      "old_id": "c26a4abd3f31af6d22324552f5fa65261fe20931",
      "old_mode": 33188,
      "old_path": "include/ceres/codegen/internal/expression_ref.h",
      "new_id": "c888739669e24bb3288f28311a6f3ba779d7b89e",
      "new_mode": 33188,
      "new_path": "include/ceres/codegen/internal/expression_ref.h"
    },
    {
      "type": "modify",
      "old_id": "97500758a01853d53ca20d038b1e8cd2f57efb61",
      "old_mode": 33188,
      "old_path": "include/ceres/codegen/macros.h",
      "new_id": "0efc9e2dcf932d41498f20473a2021cbddbc62a6",
      "new_mode": 33188,
      "new_path": "include/ceres/codegen/macros.h"
    },
    {
      "type": "modify",
      "old_id": "3fcb7a354343099d64fa30fd8f46638674eb26bd",
      "old_mode": 33188,
      "old_path": "internal/ceres/conditional_expressions_test.cc",
      "new_id": "9c499ea4e02c1374ec576e9c0a6ef3a9556af5d6",
      "new_mode": 33188,
      "new_path": "internal/ceres/conditional_expressions_test.cc"
    },
    {
      "type": "modify",
      "old_id": "b2471e7767836cbf2c5a06aa94ee6c4f4add4c4a",
      "old_mode": 33188,
      "old_path": "internal/ceres/expression.cc",
      "new_id": "ca92eaf68e242bde0c31152b50cd9d131011f5ac",
      "new_mode": 33188,
      "new_path": "internal/ceres/expression.cc"
    },
    {
      "type": "modify",
      "old_id": "6d02c1c38ae42842775dcbdebbfbd0de19c293ac",
      "old_mode": 33188,
      "old_path": "internal/ceres/expression_graph.cc",
      "new_id": "c0761aff275b75e5111362f94c510f565517d2b4",
      "new_mode": 33188,
      "new_path": "internal/ceres/expression_graph.cc"
    },
    {
      "type": "modify",
      "old_id": "23e68eea0036a6a638f5c7661806aea983a596be",
      "old_mode": 33188,
      "old_path": "internal/ceres/expression_graph_test.cc",
      "new_id": "65b019c00eb3e53fb74140a4018ff9d8ba1b3458",
      "new_mode": 33188,
      "new_path": "internal/ceres/expression_graph_test.cc"
    },
    {
      "type": "modify",
      "old_id": "bb8f9206efa9e5f663a1d61970777ba0884a9724",
      "old_mode": 33188,
      "old_path": "internal/ceres/expression_ref.cc",
      "new_id": "2738b0826b2d4a6718191d45e17085e500da9d38",
      "new_mode": 33188,
      "new_path": "internal/ceres/expression_ref.cc"
    },
    {
      "type": "modify",
      "old_id": "25fd7f64810ad2e4dd843815d633864a8f41f64b",
      "old_mode": 33188,
      "old_path": "internal/ceres/expression_test.cc",
      "new_id": "cab196b3b9f6e79d512aea29e0098c81d75cfd28",
      "new_mode": 33188,
      "new_path": "internal/ceres/expression_test.cc"
    }
  ]
}
