summaryrefslogtreecommitdiffstats
path: root/docs/internal-fs-layout.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/internal-fs-layout.md')
-rw-r--r--docs/internal-fs-layout.md22
1 files changed, 13 insertions, 9 deletions
diff --git a/docs/internal-fs-layout.md b/docs/internal-fs-layout.md
index f4740291..9e724e7b 100644
--- a/docs/internal-fs-layout.md
+++ b/docs/internal-fs-layout.md
@@ -92,19 +92,23 @@ support, see the [manifest-format.md] file.
92 Some git state is further split out under `project-objects/`. 92 Some git state is further split out under `project-objects/`.
93* `project-objects/`: Git objects that are safe to share across multiple 93* `project-objects/`: Git objects that are safe to share across multiple
94 git checkouts. The filesystem layout matches the `<project name=...` 94 git checkouts. The filesystem layout matches the `<project name=...`
95 setting in the manifest (i.e. the path on the remote server). This allows 95 setting in the manifest (i.e. the path on the remote server) with a `.git`
96 for multiple checkouts of the same remote git repo to share their objects. 96 suffix. This allows for multiple checkouts of the same remote git repo to
97 For example, you could have different branches of `foo/bar.git` checked 97 share their objects. For example, you could have different branches of
98 out to `foo/bar-master`, `foo/bar-release`, etc... There will be multiple 98 `foo/bar.git` checked out to `foo/bar-master`, `foo/bar-release`, etc...
99 trees under `projects/` for each one, but only one under `project-objects/`. 99 There will be multiple trees under `projects/` for each one, but only one
100 100 under `project-objects/`.
101 This can run into problems if different remotes use the same path on their 101
102 respective servers ... 102 This layout is designed to allow people to sync against different remotes
103 (e.g. a local mirror & a public review server) while avoiding duplicating
104 the content. However, this can run into problems if different remotes use
105 the same path on their respective servers. Best to avoid that.
103* `subprojects/`: Like `projects/`, but for git submodules. 106* `subprojects/`: Like `projects/`, but for git submodules.
104* `subproject-objects/`: Like `project-objects/`, but for git submodules. 107* `subproject-objects/`: Like `project-objects/`, but for git submodules.
105* `worktrees/`: Bare checkouts of every project synced by the manifest. The 108* `worktrees/`: Bare checkouts of every project synced by the manifest. The
106 filesystem layout matches the `<project name=...` setting in the manifest 109 filesystem layout matches the `<project name=...` setting in the manifest
107 (i.e. the path on the remote server). 110 (i.e. the path on the remote server) with a `.git` suffix. This has the
111 same advantages as the `project-objects/` layout above.
108 112
109 This is used when git worktrees are enabled. 113 This is used when git worktrees are enabled.
110 114