diff options
| -rw-r--r-- | project.py | 15 |
1 files changed, 14 insertions, 1 deletions
| @@ -1277,7 +1277,20 @@ class Project: | |||
| 1277 | if is_new: | 1277 | if is_new: |
| 1278 | self._InitGitDir(force_sync=force_sync, quiet=quiet) | 1278 | self._InitGitDir(force_sync=force_sync, quiet=quiet) |
| 1279 | else: | 1279 | else: |
| 1280 | self._UpdateHooks(quiet=quiet) | 1280 | try: |
| 1281 | # At this point, it's possible that gitdir points to an old | ||
| 1282 | # objdir (e.g. name changed, but objdir exists). Check | ||
| 1283 | # references to ensure that's not the case. See | ||
| 1284 | # https://issues.gerritcodereview.com/40013418 for more | ||
| 1285 | # details. | ||
| 1286 | self._CheckDirReference(self.objdir, self.gitdir) | ||
| 1287 | |||
| 1288 | self._UpdateHooks(quiet=quiet) | ||
| 1289 | except GitError as e: | ||
| 1290 | if not force_sync: | ||
| 1291 | raise e | ||
| 1292 | # Let _InitGitDir fix the issue, force_sync is always True here. | ||
| 1293 | self._InitGitDir(force_sync=True, quiet=quiet) | ||
| 1281 | self._InitRemote() | 1294 | self._InitRemote() |
| 1282 | 1295 | ||
| 1283 | if self.UseAlternates: | 1296 | if self.UseAlternates: |
