When syncing a project with a shared object store, disable automatic pruning.

The shared object stores confuse git and make it throw away objects which are
still in use. We'll avoid that problem by disabling automatic pruning on those
projects, but there's nothing preventing a user from changing the config back
or pruning a repository manually.

BUG=chromium:375945
TEST=Ran repo sync on fresh ChromeOS checkout, starting with a branch of repo
with this change. Verified that the kernel projects and no others were
identified as having shared object stores, and that repo successfully disabled
automatic pruning in their configs. Re-enabled pruning and ran repo sync just
on one of the kernel directories. Verified that pruning was re-disabled as a
result.

Change-Id: I728ed5b06f0087aeb5a23ba8f5410a7cd10af5b0
1 file changed
tree: 64d3150bea0efd2989a22f28e750c09614f9e772
  1. docs/
  2. hooks/
  3. subcmds/
  4. tests/
  5. .gitattributes
  6. .gitignore
  7. .mailmap
  8. .project
  9. .pydevproject
  10. .pylintrc
  11. color.py
  12. command.py
  13. COPYING
  14. editor.py
  15. error.py
  16. git_command.py
  17. git_config.py
  18. git_refs.py
  19. git_ssh
  20. gitc_utils.py
  21. main.py
  22. manifest_xml.py
  23. pager.py
  24. progress.py
  25. project.py
  26. pyversion.py
  27. README.md
  28. repo
  29. SUBMITTING_PATCHES.md
  30. trace.py
  31. wrapper.py
README.md

repo

Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. Repo is not meant to replace Git, only to make it easier to work with Git. The repo command is an executable Python script that you can put anywhere in your path.