diff options
author | Mike Frysinger <vapier@google.com> | 2020-02-09 02:28:34 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@google.com> | 2020-02-19 18:11:33 +0000 |
commit | 979d5bdc3ebe45998a76dbbaff46c33d4e59683b (patch) | |
tree | 97c639570a60dd02a6ee9b712dff091a83ac8110 /docs/internal-fs-layout.md | |
parent | 56ce3468b4f2faa1cccfea01dc91e7db73fb3843 (diff) | |
download | git-repo-979d5bdc3ebe45998a76dbbaff46c33d4e59683b.tar.gz |
add experimental git worktree support
This provides initial support for using git worktrees internally
instead of our own ad-hoc symlink tree. It's been lightly tested
which is why it's not currently exposed via --help.
When people opt-in to worktrees in an existing repo client checkout,
no projects are migrated. Instead, only new projects will use the
worktree method. This allows for limited testing/opting in without
having to completely blow things away or get a second checkout.
Bug: https://crbug.com/gerrit/11486
Change-Id: Ic3ff891b30940a6ba497b406b2a387e0a8517ed8
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/254075
Tested-by: Mike Frysinger <vapier@google.com>
Reviewed-by: Mike Frysinger <vapier@google.com>
Diffstat (limited to 'docs/internal-fs-layout.md')
-rw-r--r-- | docs/internal-fs-layout.md | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/docs/internal-fs-layout.md b/docs/internal-fs-layout.md index 8e62cde2..f4740291 100644 --- a/docs/internal-fs-layout.md +++ b/docs/internal-fs-layout.md | |||
@@ -102,6 +102,11 @@ support, see the [manifest-format.md] file. | |||
102 | respective servers ... | 102 | respective servers ... |
103 | * `subprojects/`: Like `projects/`, but for git submodules. | 103 | * `subprojects/`: Like `projects/`, but for git submodules. |
104 | * `subproject-objects/`: Like `project-objects/`, but for git submodules. | 104 | * `subproject-objects/`: Like `project-objects/`, but for git submodules. |
105 | * `worktrees/`: Bare checkouts of every project synced by the manifest. The | ||
106 | filesystem layout matches the `<project name=...` setting in the manifest | ||
107 | (i.e. the path on the remote server). | ||
108 | |||
109 | This is used when git worktrees are enabled. | ||
105 | 110 | ||
106 | ### Global settings | 111 | ### Global settings |
107 | 112 | ||
@@ -121,6 +126,7 @@ User controlled settings are initialized when running `repo init`. | |||
121 | | repo.partialclone | `--partial-clone` | Create [partial git clones] | | 126 | | repo.partialclone | `--partial-clone` | Create [partial git clones] | |
122 | | repo.reference | `--reference` | Reference repo client checkout | | 127 | | repo.reference | `--reference` | Reference repo client checkout | |
123 | | repo.submodules | `--submodules` | Sync git submodules | | 128 | | repo.submodules | `--submodules` | Sync git submodules | |
129 | | repo.worktree | `--worktree` | Use `git worktree` for checkouts | | ||
124 | | user.email | `--config-name` | User's e-mail address; Copied into `.git/config` when checking out a new project | | 130 | | user.email | `--config-name` | User's e-mail address; Copied into `.git/config` when checking out a new project | |
125 | | user.name | `--config-name` | User's name; Copied into `.git/config` when checking out a new project | | 131 | | user.name | `--config-name` | User's name; Copied into `.git/config` when checking out a new project | |
126 | 132 | ||