Include project path in --force-sync error message
For projects that have been cloned outside of the repo command (or
cloned a long time ago), commit abaa7f312f1b6c8d11d7c757fe909900ce5788b5
introduced an error message to invite the user to use --force-sync.
However, due to the risk of data loss, it's useful to know which
project's git directory is being replaced before deciding whether or not
to provide --force-sync.
This change updates the exception's associated value to include the
project's relative path and explain to the user how they can resolve the
issue. A previous version of this commit used the project name. However,
for projects that have multiple work trees, the name can be ambiguous,
while the path clearly identifies which git directory will be replaced.
Change-Id: If717e66fda4d19accc0a8e889a91f4cd4ff14dff
diff --git a/project.py b/project.py
index 9cb7542..fb9df2a 100644
--- a/project.py
+++ b/project.py
@@ -2323,7 +2323,10 @@
# Fail if the links are pointing to the wrong place
if src != dst:
raise GitError('--force-sync not enabled; cannot overwrite a local '
- 'work tree')
+ 'work tree. If you\'re comfortable with the '
+ 'possibility of losing the work tree\'s git metadata,'
+ ' use `repo sync --force-sync {0}` to '
+ 'proceed.'.format(self.relpath))
def _ReferenceGitDir(self, gitdir, dotgit, share_refs, copy_all):
"""Update |dotgit| to reference |gitdir|, using symlinks where possible.