sync: add option to skip manifest update

The use case is any situation where your manifest does
not exist on server, but where you still want to do
full sync for the projects, without having your
workspace manifest switched to other branch or
forwarded to latest or similar.
This allows syncing to a historical manifest in git log,
that does not have a branch, as well as when integrating
something together that has not been pushed upstream yet.
Changes can also exist locally on a manifest that is
behind head, meaning not requiring rebase to latest.

Tested using:
  $ cd .repo/manifests/
  $ git checkout <any hash 1>
  $ <do local modifications>
  $ repo sync --no-manifest-update
  $ git checkout <any hash 2>
  $ repo sync --no-manifest-update

Change-Id: I0c9773aa8bc5876813a2e7d7fec697abcb2d9e94
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/246445
Tested-by: Fredrik de Groot <fredrik.de.groot@volvocars.com>
Reviewed-by: Mike Frysinger <vapier@google.com>
1 file changed
tree: 04900a5ab865a8819f1bad821bb655147dd26e00
  1. docs/
  2. hooks/
  3. subcmds/
  4. tests/
  5. .flake8
  6. .gitattributes
  7. .gitignore
  8. .mailmap
  9. .project
  10. .pydevproject
  11. color.py
  12. command.py
  13. editor.py
  14. error.py
  15. event_log.py
  16. git_command.py
  17. git_config.py
  18. git_refs.py
  19. git_ssh
  20. gitc_utils.py
  21. LICENSE
  22. main.py
  23. MANIFEST.in
  24. manifest_xml.py
  25. pager.py
  26. platform_utils.py
  27. platform_utils_win32.py
  28. progress.py
  29. project.py
  30. pyversion.py
  31. README.md
  32. repo
  33. repo_trace.py
  34. run_tests
  35. setup.py
  36. SUBMITTING_PATCHES.md
  37. tox.ini
  38. 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.

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