)]}'
{
  "commit": "2b16b0080b6e673eaaf9ed478c9e971d9fcd65de",
  "tree": "814131f418fa6e389889099fcedf2e12470b2350",
  "parents": [
    "27bb4a8589c47a65b5ea2c01872a903043d0ef74"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Fri Dec 20 15:22:26 2013 -0800"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Tue Dec 24 22:40:50 2013 -0800"
  },
  "message": "CompressedRowSparseMatrix::AppendRows and DeleteRows bugfix.\n\nCompressedRowSparseMatrix can store the row and column block structure\nbut the AppendRows and DeleteRows methods did not pay attention to them.\nThis meant that it was possible to get to a CompressedRowSparseMatrix\nwhose block structure did not match the contents of the matrix.\n\nThis change fixes this problem.\n\nChange-Id: I1b3c807fc03d8c049ee20511e2bc62806d211b81\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e200c9285090388667d9f5d70efad7b9c2b39e68",
      "old_mode": 33188,
      "old_path": "internal/ceres/compressed_row_sparse_matrix.cc",
      "new_id": "439270ed3bc46a40c8c614892079d1f2e9b6a783",
      "new_mode": 33188,
      "new_path": "internal/ceres/compressed_row_sparse_matrix.cc"
    },
    {
      "type": "modify",
      "old_id": "02109cc2e0b7f8ac83cefdf24cba2530968ec696",
      "old_mode": 33188,
      "old_path": "internal/ceres/compressed_row_sparse_matrix_test.cc",
      "new_id": "4d20083a3259f95c887cb3bf0c6068034d492b2f",
      "new_mode": 33188,
      "new_path": "internal/ceres/compressed_row_sparse_matrix_test.cc"
    },
    {
      "type": "modify",
      "old_id": "1ead8f70ae23525e7d46ee9617ae6d4528ffbba2",
      "old_mode": 33188,
      "old_path": "internal/ceres/sparse_normal_cholesky_solver.cc",
      "new_id": "b2dba440e106a3066a5be35c1b382271a1a71b91",
      "new_mode": 33188,
      "new_path": "internal/ceres/sparse_normal_cholesky_solver.cc"
    }
  ]
}
