)]}'
{
  "commit": "2a089cfee4a3eb0c28cfb441861fc1fcb05797d3",
  "tree": "6e876b45921426afa477472aeb5291e9e31071f0",
  "parents": [
    "4a478edb443864561089b2699c9e65c85fc5e036"
  ],
  "author": {
    "name": "Mike Frysinger",
    "email": "vapier@google.com",
    "time": "Sat Nov 13 23:29:42 2021 -0500"
  },
  "committer": {
    "name": "Mike Frysinger",
    "email": "vapier@google.com",
    "time": "Wed Dec 01 15:27:16 2021 +0000"
  },
  "message": "project: migrate worktree .git/ dirs to symlinks\n\nHistorically we created a .git/ subdir in each source checkout and\nsymlinked individual files to the .repo/projects/ paths.  This layer\nof indirection isn\u0027t actually needed: the .repo/projects/ paths are\nguaranteed to only ever have a 1-to-1 mapping with the actual git\ncheckout.  So we don\u0027t need to worry about having files in .git/ be\nisolated.\n\nTo that end, change how we manage the actual project checkouts from\na dir full of symlinks (and a few files) to a symlink to the internal\n.repo/projects/ dir.  This makes the code simpler \u0026 faster.\n\nThe directory structure we have today is:\n.repo/\n  project-objects/chromiumos/third_party/kernel.git/\n    \u003cpaths omitted as not relevant to this change\u003e\n  projects/src/third_party/kernel/\n    v3.8.git/\n      config\n      description   -\u003e …/project-objects/…/config\n      FETCH_HEAD\n      HEAD\n      hooks/        -\u003e …/project-objects/…/hooks/\n      info/         -\u003e …/project-objects/…/info/\n      logs/\n      objects/      -\u003e …/project-objects/…/objects/\n      packed-refs\n      refs/\n      rr-cache/     -\u003e …/project-objects/…/rr-cache/\nsrc/third_party/kernel/\n  v3.8/\n    .git/\n      config        -\u003e …/projects/…/v3.8.git/config\n      description   -\u003e …/project-objects/…/v3.8.git/description\n      HEAD\n      hooks/        -\u003e …/project-objects/…/v3.8.git/hooks/\n      index\n      info/         -\u003e …/project-objects/…/v3.8.git/info/\n      logs/         -\u003e …/projects/…/v3.8.git/logs/\n      objects/      -\u003e …/project-objects/…/v3.8.git/objects/\n      packed-refs   -\u003e …/projects/…/v3.8.git/packed-refs\n      refs/         -\u003e …/projects/…/v3.8.git/refs/\n      rr-cache/     -\u003e …/project-objects/…/v3.8.git/rr-cache/\n\nThe directory structure we have after this commit:\n.repo/\n  \u003cnothing changes\u003e\nsrc/third_party/kernel/\n  v3.8/\n    .git            -\u003e …/projects/…/v3.8.git\n\nBug: https://crbug.com/gerrit/15273\nChange-Id: I9dd8def23fbfb2f4cb209a93f8b1b2b24002a444\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/323695\nReviewed-by: Mike Nichols \u003cmikenichols@google.com\u003e\nReviewed-by: Xin Li \u003cdelphij@google.com\u003e\nTested-by: Mike Frysinger \u003cvapier@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4b85bb98f9ce9efaf9e2be0f5df739e6488d858a",
      "old_mode": 33188,
      "old_path": "project.py",
      "new_id": "e0d645bb8d64319161f13dd4056d9b37a0d7e917",
      "new_mode": 33188,
      "new_path": "project.py"
    },
    {
      "type": "modify",
      "old_id": "9b2cc4e91c0b3063c50f0215103ef22a38cffcb0",
      "old_mode": 33188,
      "old_path": "tests/test_project.py",
      "new_id": "d578fe848d1cc6e9e82c0658b5a8ac5e66e2d43f",
      "new_mode": 33188,
      "new_path": "tests/test_project.py"
    }
  ]
}
