git-repo/subcmds
Raman Tenneti f32f243ff8 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>
2021-04-13 15:47:10 +00:00
..
__init__.py strip python2-only coding:utf-8 & print_function settings 2021-01-06 18:53:05 +00:00
abandon.py abandon/start: add --jobs support 2021-02-27 19:45:14 +00:00
branches.py status: improve parallel execution stability 2021-02-22 22:51:34 +00:00
checkout.py checkout: add --jobs support 2021-02-27 19:56:24 +00:00
cherry_pick.py git_command: rework stdin handling 2021-02-17 15:15:16 +00:00
diff.py diff: add --jobs support 2021-02-23 00:31:27 +00:00
diffmanifests.py diffmanifests/sync: simplify repodir lookup 2021-02-11 02:38:53 +00:00
download.py download: handle shared projects a bit better 2021-03-01 15:57:17 +00:00
forall.py forall: handle missing project refs better 2021-03-25 23:08:51 +00:00
gitc_delete.py drop pyversion & is_python3 checking 2021-01-06 18:53:58 +00:00
gitc_init.py init: merge subcmd & wrapper parsers 2021-04-09 01:04:32 +00:00
grep.py grep: add --jobs support 2021-04-01 14:43:19 +00:00
help.py strip python2-only coding:utf-8 & print_function settings 2021-01-06 18:53:05 +00:00
info.py strip python2-only coding:utf-8 & print_function settings 2021-01-06 18:53:05 +00:00
init.py init: Added --partial-clone-exclude option. 2021-04-13 15:47:10 +00:00
list.py forall/list: delete spurious " 2021-03-19 21:13:49 +00:00
manifest.py strip python2-only coding:utf-8 & print_function settings 2021-01-06 18:53:05 +00:00
overview.py strip python2-only coding:utf-8 & print_function settings 2021-01-06 18:53:05 +00:00
prune.py prune: add --jobs support 2021-03-31 16:28:24 +00:00
rebase.py strip python2-only coding:utf-8 & print_function settings 2021-01-06 18:53:05 +00:00
selfupdate.py strip python2-only coding:utf-8 & print_function settings 2021-01-06 18:53:05 +00:00
smartsync.py strip python2-only coding:utf-8 & print_function settings 2021-01-06 18:53:05 +00:00
stage.py strip python2-only coding:utf-8 & print_function settings 2021-01-06 18:53:05 +00:00
start.py start: add a --HEAD alias 2021-03-24 00:32:04 +00:00
status.py status: improve parallel execution stability 2021-02-22 22:51:34 +00:00
sync.py init: Added --partial-clone-exclude option. 2021-04-13 15:47:10 +00:00
upload.py drop pyversion & is_python3 checking 2021-01-06 18:53:58 +00:00
version.py version: add remote tracking information 2021-01-08 20:41:27 +00:00