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. .gitattributes
  2. .gitignore
  3. .mailmap
  4. .project
  5. .pydevproject
  6. .pylintrc
  7. COPYING
  8. README.md
  9. SUBMITTING_PATCHES.md
  10. color.py
  11. command.py
  12. docs/
  13. editor.py
  14. error.py
  15. git_command.py
  16. git_config.py
  17. git_refs.py
  18. git_ssh
  19. gitc_utils.py
  20. hooks/
  21. main.py
  22. manifest_xml.py
  23. pager.py
  24. progress.py
  25. project.py
  26. pyversion.py
  27. repo
  28. subcmds/
  29. tests/
  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.