Fix checkout error when depth passed to repo init and revision is a sha1

Currently, if direct fetch of a sha1 is not supported by git server and
depth option is used, we fallback on syncing the upstream branch by
ignoring depth option.

This fallback doesn't work in next 2 cases:
(1) upstream attribute is not specified in manifest
(2) depth option is passed to repo init command
    (not with clone-depth attribute in manifest)

This commit do the following:
- fixes (1) by updating condition used to apply fallback
  first we retry with depth set to None, then by syncing all branches
- fixes (2) by passing depth as argument of _RemoteFetch() method
  thus, its value is not set again to depth value passed to repo init
  command when applying fallback

Change-Id: Ifd6fffafc49ba229df624b0d7b64c83d47619d17
1 file changed
tree: a34387f91d0a67c01455c2a211ae5401fe5a2bda
  1. .flake8
  2. .gitattributes
  3. .gitignore
  4. .mailmap
  5. .project
  6. .pydevproject
  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.