repo v2.17-cr1
Merge commits up to v2.17

* tag 'v2.17':
  git_config: Fixed test.gitconfig getting updated when running tests.
  trace2_event: Add remove_prefix to fix failing tests on Linux & macOS.
  git_config: update error handling with no config file
  launcher: bump version for new release
  Update revisionId if required when using extend-project
  Add 'dest-path' to extend-project to support changing path
  superproject: Only trigger enrollment logic when manifest have it.
  superproject: Log syncstate's parameter as data-json it it is an array.
  make file removal a bit more robust
  repo: add support for reading standalone manifests from disk
  repo: Add support for standalone manifests
  superproject: Log argv parameter of syncstate as 'data-json'.
  Fix indent error which would have prevented choice expiration to work.
  superproject: support a new revision attribute.
  release-process: update distro baseline & add OpenSSH
  platform_utils: os.rename exception when src and des on different file system
  manifest: make repo-hooks more robust wrt element ordering
  update-manpages: avoid regen just for datestamp update
  sync: fix recursive fetching
  git_config: hoist Windows ssh check earlier
  Revert "Save cookies back to jar when fetching clone.bundle"
  repo: bump launcher version
  project: fix bytes/str encoding when updating git submodules
  repo: allow REPO_REV to be an env var
  Fixing forall subcommand for Py3
  remove spurious +x bits
  find python via env
  git_config: fix encoding handling in GetUrlCookieFile
  Fix inverted logic around [gitc-]init and -c
  Do not try to fetch default revision for mirrors always
  init: handle -c conflicts with gitc-init
  repo: point default branch to repo-1

Change-Id: I0c749cd651f38f7d0507fb3e88c1e2195a4d3ff9
tree: e1c909eb5ec6926f624650a7b36de13900561ff4
  1. .github/
  2. docs/
  3. hooks/
  4. man/
  5. release/
  6. subcmds/
  7. tests/
  8. .flake8
  9. .gitattributes
  10. .gitignore
  11. .mailmap
  12. .project
  13. .pydevproject
  14. color.py
  15. command.py
  16. completion.bash
  17. editor.py
  18. error.py
  19. event_log.py
  20. fetch.py
  21. git_command.py
  22. git_config.py
  23. git_refs.py
  24. git_ssh
  25. git_superproject.py
  26. git_trace2_event_log.py
  27. gitc_utils.py
  28. hooks.py
  29. LICENSE
  30. main.py
  31. MANIFEST.in
  32. manifest_xml.py
  33. pager.py
  34. platform_utils.py
  35. platform_utils_win32.py
  36. progress.py
  37. project.py
  38. README.md
  39. repo
  40. repo_trace.py
  41. requirements.json
  42. run_tests
  43. setup.py
  44. ssh.py
  45. SUBMITTING_PATCHES.md
  46. tox.ini
  47. 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.

Contact

Please use the repo-discuss mailing list or issue tracker for questions.

You can file a new bug report under the “repo” component.

Please do not e-mail individual developers for support. They do not have the bandwidth for it, and often times questions have already been asked on repo-discuss or bugs posted to the issue tracker. So please search those sites first.

Install

Many distros include repo, so you might be able to install from there.

# Debian/Ubuntu.
$ sudo apt-get install repo

# Gentoo.
$ sudo emerge dev-vcs/repo

You can install it manually as well as it's a single script.

$ mkdir -p ~/.bin
$ PATH="${HOME}/.bin:${PATH}"
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
$ chmod a+rx ~/.bin/repo