diff options
author | Raman Tenneti <rtenneti@google.com> | 2021-04-12 20:57:25 -0700 |
---|---|---|
committer | Raman Tenneti <rtenneti@google.com> | 2021-04-13 15:47:10 +0000 |
commit | f32f243ff8aaabe5287235015e1ce189da0123e3 (patch) | |
tree | 3fe288a6b23c20736b650ad37e3d1b00451b27fe /docs | |
parent | 49de8ef584a074982f3fd86aac8a144f48209807 (diff) | |
download | git-repo-f32f243ff8aaabe5287235015e1ce189da0123e3.tar.gz |
init: Added --partial-clone-exclude option.
partial-clone-exclude option excludes projects during
partial clone. This is a comma-delimited project names
(from manifest.xml). This option is persisted and it
is used by the sync command.
A project that has been unparital'ed will remain unpartial if
that project's name is specified in the --partial-clone-exclude
option. The project name should match exactly.
Added
$ ./run_tests -v
Bug: [google internal] b/175712967
"I can't "unpartial" my androidx-main checkout"
$ rm -rf androidx-main/
$ mkdir androidx-main/
$ cd androidx-main/
$ repo_dev init -u https://android.googlesource.com/platform/manifest -b androidx-main --partial-clone --clone-filter=blob:limit=10M -m default.xml
$ repo_dev sync -c -j8
+ Verify a project is partial
$ cd frameworks/support/
$ git config -l | grep 'partial'
+ Unpartial a project.
$ /google/bin/releases/android/git_repack/git_unpartial
+ Verify project is unpartial
$ git config -l | grep 'partial'
$ cd ../..
+ Exclude the project from being unparial'ed after init and sync.
$ repo_dev init -u https://android.googlesource.com/platform/manifest -b androidx-main --partial-clone --clone-filter=blob:limit=10M --partial-clone-exclude="platform/frameworks/support,platform/frameworks/support-golden" -m default.xml
+ Verify project is unpartial
$ cd frameworks/support/
$ git config -l | grep 'partial'
$ cd ../..
$ repo_dev sync -c -j8
$ cd frameworks/support/
$ git config -l | grep 'partial'
$ cd ../..
+ Remove the project from exclude list and verify that project is partially cloned.
$ repo_dev init -u https://android.googlesource.com/platform/manifest -b androidx-main --partial-clone --clone-filter=blob:limit=10M --partial-clone-exclude= -m default.xml
$ repo_dev sync -c -j8
$ cd frameworks/support/
$ git config -l | grep 'partial'
Change-Id: Id5dba418eba1d3f54b54e826000406534c0ec196
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/303162
Reviewed-by: Mike Frysinger <vapier@google.com>
Tested-by: Raman Tenneti <rtenneti@google.com>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/internal-fs-layout.md | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/docs/internal-fs-layout.md b/docs/internal-fs-layout.md index 9cbdefb7..0c59f988 100644 --- a/docs/internal-fs-layout.md +++ b/docs/internal-fs-layout.md | |||
@@ -147,22 +147,23 @@ repo client checkout. | |||
147 | Most settings use the `[repo]` section to avoid conflicts with git. | 147 | Most settings use the `[repo]` section to avoid conflicts with git. |
148 | User controlled settings are initialized when running `repo init`. | 148 | User controlled settings are initialized when running `repo init`. |
149 | 149 | ||
150 | | Setting | `repo init` Option | Use/Meaning | | 150 | | Setting | `repo init` Option | Use/Meaning | |
151 | |-------------------|---------------------------|-------------| | 151 | |------------------- |---------------------------|-------------| |
152 | | manifest.groups | `--groups` & `--platform` | The manifest groups to sync | | 152 | | manifest.groups | `--groups` & `--platform` | The manifest groups to sync | |
153 | | repo.archive | `--archive` | Use `git archive` for checkouts | | 153 | | repo.archive | `--archive` | Use `git archive` for checkouts | |
154 | | repo.clonebundle | `--clone-bundle` | Whether the initial sync used clone.bundle explicitly | | 154 | | repo.clonebundle | `--clone-bundle` | Whether the initial sync used clone.bundle explicitly | |
155 | | repo.clonefilter | `--clone-filter` | Filter setting when using [partial git clones] | | 155 | | repo.clonefilter | `--clone-filter` | Filter setting when using [partial git clones] | |
156 | | repo.depth | `--depth` | Create shallow checkouts when cloning | | 156 | | repo.depth | `--depth` | Create shallow checkouts when cloning | |
157 | | repo.dissociate | `--dissociate` | Dissociate from any reference/mirrors after initial clone | | 157 | | repo.dissociate | `--dissociate` | Dissociate from any reference/mirrors after initial clone | |
158 | | repo.mirror | `--mirror` | Checkout is a repo mirror | | 158 | | repo.mirror | `--mirror` | Checkout is a repo mirror | |
159 | | repo.partialclone | `--partial-clone` | Create [partial git clones] | | 159 | | repo.partialclone | `--partial-clone` | Create [partial git clones] | |
160 | | repo.reference | `--reference` | Reference repo client checkout | | 160 | | repo.partialcloneexclude | `--partial-clone-exclude` | Comma-delimited list of project names (not paths) to exclude while using [partial git clones] | |
161 | | repo.submodules | `--submodules` | Sync git submodules | | 161 | | repo.reference | `--reference` | Reference repo client checkout | |
162 | | repo.superproject | `--use-superproject` | Sync [superproject] | | 162 | | repo.submodules | `--submodules` | Sync git submodules | |
163 | | repo.worktree | `--worktree` | Use [git worktree] for checkouts | | 163 | | repo.superproject | `--use-superproject` | Sync [superproject] | |
164 | | user.email | `--config-name` | User's e-mail address; Copied into `.git/config` when checking out a new project | | 164 | | repo.worktree | `--worktree` | Use [git worktree] for checkouts | |
165 | | user.name | `--config-name` | User's name; Copied into `.git/config` when checking out a new project | | 165 | | user.email | `--config-name` | User's e-mail address; Copied into `.git/config` when checking out a new project | |
166 | | user.name | `--config-name` | User's name; Copied into `.git/config` when checking out a new project | | ||
166 | 167 | ||
167 | [partial git clones]: https://git-scm.com/docs/gitrepository-layout#_code_partialclone_code | 168 | [partial git clones]: https://git-scm.com/docs/gitrepository-layout#_code_partialclone_code |
168 | [superproject]: https://en.wikibooks.org/wiki/Git/Submodules_and_Superprojects | 169 | [superproject]: https://en.wikibooks.org/wiki/Git/Submodules_and_Superprojects |