summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2020-02-19 15:47:46 -0500
committerMike Frysinger <vapier@google.com>2020-02-19 21:58:43 +0000
commit0334b8c6738929ed5982a6572135714045a977fa (patch)
tree7c70dd546e4ddcdd7c89cd9d46c0379a34977a35
parent7ff80afdf66e8a00745300c0375d98f2ba8887b5 (diff)
downloadgit-repo-0334b8c6738929ed5982a6572135714045a977fa.tar.gz
docs: improve project-objects & worktrees layout info
Make it clear that the paths have a .git suffix, and clarify the reason for not using remote servers in the layout. Change-Id: I62c6977ee6f4e1e9882d45727eb239cf5489d2b6 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/256033 Reviewed-by: Jonathan Nieder <jrn@google.com> Tested-by: Mike Frysinger <vapier@google.com>
-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