Revert "project: initialize new manifests in temp dirs"
This reverts commit 07d21e6bde9bd7efdfb8f25f2ed23f023daa5c1f.
Reason for revert: crbug.com/gerrit/16230, b/244467766 - breaks aosp-master-with-phones case
Change-Id: Id967d92f8622c2c13356b09e46ece9f20040aabc
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/344314
Tested-by: LaMont Jones <lamontjones@google.com>
Reviewed-by: Xin Li <delphij@google.com>
diff --git a/project.py b/project.py
index ab449f0..2b57a5f 100644
--- a/project.py
+++ b/project.py
@@ -2794,35 +2794,6 @@
else:
raise
- def _InitialCheckoutStart(self):
- """Called when checking out a project for the first time.
-
- This will use temporary non-visible paths so we can be safely interrupted
- without leaving incomplete state behind.
- """
- paths = [f'{x}.tmp' for x in (self.relpath, self.worktree, self.gitdir, self.objdir)]
- for p in paths:
- platform_utils.rmtree(p, ignore_errors=True)
- self.UpdatePaths(*paths)
-
- def _InitialCheckoutFinalizeNetworkHalf(self):
- """Finalize the object dirs after network syncing works."""
- # Once the network half finishes, we can move the objects into the right
- # place by removing the ".tmp" suffix on the dirs.
- platform_utils.rmtree(self.gitdir[:-4], ignore_errors=True)
- os.rename(self.gitdir, self.gitdir[:-4])
- self.UpdatePaths(self.relpath, self.worktree, self.gitdir[:-4], self.objdir[:-4])
-
- def _InitialCheckoutFinalizeLocalHalf(self):
- """Finalize the initial checkout and make it available."""
- assert self.gitdir == self.objdir
- # Once the local half finishes, we can move the manifest dir into the right
- # place by removing the ".tmp" suffix on the dirs.
- platform_utils.rmtree(self.worktree[:-4], ignore_errors=True)
- os.rename(self.worktree, self.worktree[:-4])
- self.UpdatePaths(
- self.relpath[:-4], self.worktree[:-4], self.gitdir, self.objdir)
-
def _InitGitWorktree(self):
"""Init the project using git worktrees."""
self.bare_git.worktree('prune')
@@ -3709,8 +3680,6 @@
(GitConfig.ForUser().UrlInsteadOf(manifest_url),),
file=sys.stderr)
- self._InitialCheckoutStart()
-
# The manifest project object doesn't keep track of the path on the
# server where this git is located, so let's save that here.
mirrored_manifest_git = None
@@ -3870,14 +3839,16 @@
partial_clone_exclude=self.manifest.PartialCloneExclude):
r = self.GetRemote()
print('fatal: cannot obtain manifest %s' % r.url, file=sys.stderr)
+
+ # Better delete the manifest git dir if we created it; otherwise next
+ # time (when user fixes problems) we won't go through the "is_new" logic.
+ if is_new:
+ platform_utils.rmtree(self.gitdir)
return False
if manifest_branch:
self.MetaBranchSwitch(submodules=submodules)
- if is_new:
- self._InitialCheckoutFinalizeNetworkHalf()
-
syncbuf = SyncBuffer(self.config)
self.Sync_LocalHalf(syncbuf, submodules=submodules)
syncbuf.Finish()
@@ -3900,9 +3871,6 @@
with open(dest, 'wb') as f:
f.write(manifest_data)
- if is_new:
- self._InitialCheckoutFinalizeLocalHalf()
-
try:
self.manifest.Link(manifest_name)
except ManifestParseError as e: