its-amann commented on code in PR #75750:
URL: https://github.com/apache/airflow/pull/75750#discussion_r4389522502
##########
providers/git/src/airflow/providers/git/bundles/git.py:
##########
@@ -231,38 +276,24 @@ def _initialize(self):
self._ensure_version_in_bare_repo()
self.bare_repo.close()
- try:
- self._clone_repo_if_required()
- except GitCommandError as e:
- raise RuntimeError("Error cloning repository") from e
- except InvalidGitRepositoryError as e:
- raise RuntimeError(f"Invalid git repository at
{self.repo_path}") from e
- # If tracking_ref was just repointed to a SHA that predates this
working clone's
- # last fetch, this checkout fails until the clone is fetched or
storage is cleared;
- # tracked at https://github.com/apache/airflow/issues/71388
- self.repo.git.checkout(self.tracking_ref)
- self._log.debug("bundle initialize", version=self.version)
if self.version:
- if not self._has_version(self.repo, self.version):
- self.repo.remotes.origin.fetch()
-
self.repo.head.set_reference(str(self.repo.commit(self.version)))
- self.repo.head.reset(index=True, working_tree=True)
-
- if self.submodules:
- cm_sub = self.hook.configure_hook_env() if self.hook else
nullcontext()
- with cm_sub:
- try:
- self._fetch_submodules()
- except GitCommandError as e:
- raise RuntimeError("Error pulling submodule from
repository") from e
-
- if self.prune_dotgit_folder:
- self.repo.close()
- shutil.rmtree(self.repo_path / ".git")
- self.repo = None
+ self._initialize_versioned_repo()
else:
+ try:
+ self._clone_repo_if_required()
+ except GitCommandError as e:
+ raise RuntimeError("Error cloning repository") from e
+ except InvalidGitRepositoryError as e:
+ raise RuntimeError(f"Invalid git repository at
{self.repo_path}") from e
+ if re.fullmatch(r"[0-9a-f]{40}", self.tracking_ref):
Review Comment:
this only fetches for full SHAs, but #71388 also mentions a newly pushed
tag. checkout runs before refresh() so wouldn't that still fail? maybe just
always fetch first
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]