summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorRaman Tenneti <rtenneti@google.com>2021-04-12 20:57:25 -0700
committerRaman Tenneti <rtenneti@google.com>2021-04-13 15:47:10 +0000
commitf32f243ff8aaabe5287235015e1ce189da0123e3 (patch)
tree3fe288a6b23c20736b650ad37e3d1b00451b27fe /docs
parent49de8ef584a074982f3fd86aac8a144f48209807 (diff)
downloadgit-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.md33
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.
147Most settings use the `[repo]` section to avoid conflicts with git. 147Most settings use the `[repo]` section to avoid conflicts with git.
148User controlled settings are initialized when running `repo init`. 148User 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