diff options
author | Mike Frysinger <vapier@google.com> | 2020-02-19 15:47:46 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@google.com> | 2020-02-19 21:58:43 +0000 |
commit | 0334b8c6738929ed5982a6572135714045a977fa (patch) | |
tree | 7c70dd546e4ddcdd7c89cd9d46c0379a34977a35 /docs | |
parent | 7ff80afdf66e8a00745300c0375d98f2ba8887b5 (diff) | |
download | git-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>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/internal-fs-layout.md | 22 |
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 | ||