commit | e57f1146de4324dc0f9c6c95fb9897b0e78dfd36 | [log] [tgz] |
---|---|---|
author | Mike Frysinger <vapier@google.com> | Mon Mar 18 21:27:54 2019 -0400 |
committer | Mike Frysinger <vapier@google.com> | Mon Mar 18 21:31:03 2019 -0400 |
tree | a42910d442974086a379a302df024adffd61dee4 | |
parent | 01019d94af1b7ae046d69af632ce2cb4afb4a6fe [diff] |
sync: respect --force-sync when fetching updates If a tag is rewritten on the server (which is bad), trying to recover locally with `repo sync --force-sync` doesn't actually work. People have to manually delete things themselves to fix syncing. While tags should never be rewritten in practice, allow users to easily recover from broken servers. We updated some of these code paths already (see commit 6e53844f1edd3 "Allow clobbering of existing tags from remote."), but the incremental update flow was missed. Bug: b/120778183 Bug: chromium:932651 Test: delete local tag & recreate to diff commit, then check `repo sync` & `repo sync --force-sync` behavior Change-Id: I3648f7d2526732c06016b691a9a36c003157618d
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.