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

* tag 'v2.28':
  Omit local_manifest groups from superproject override.
  status, diff: display correct path for multi-manifest
  project: simplify if-statement
  upload: add ‘--ignore-untracked-files’ option
  man: regenerate
  Fix Projects.shareable_dirs
  Only sync superproject if it will be used.
  sync: add multi-manifest support
  project: initial separation of shared project objects
  upload: move label validation to core function
  tests: switch to tempfile.TemporaryDirectory
  project: fix --use-superproject logic for init.
  manifest: add submanifest.default_groups attribute
  project: Do not exit early on --standalone-manifest.
  project: Add missing imports
  progress: optimize progress bar updates a bit
  Override the manifest for the entire command
  sync: refactor use of self.manifest
  Stop passing optparse.Values to git_superproject
  ManifestProject: add manifest_platform
  forall: fix multi-manifest variables.
  git_superproject: only print beta notice once.
  manifest_xml: use Superproject to hold XML content
  sync: respect `sync-c` manifest option
  manifest_xml: Add Load and Unload methods
  Fix sub manifest handling
  init: add multi-manifest support
  Move manifest config logic into ManifestProject
  project: add ManifestProject.Sync()
  project: Isolate ManifestProject from RepoProject
  manifest_file must be an absolute path

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