From fd19fbb219fe66c91b4013c8d7a89c27db0b79a2 Mon Sep 17 00:00:00 2001 From: tawsifkamal Date: Tue, 18 Mar 2025 15:06:47 -0700 Subject: [PATCH 1/3] done --- src/codegen/git/repo_operator/repo_operator.py | 10 ++++++++-- src/codegen/sdk/core/codebase.py | 5 +++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/codegen/git/repo_operator/repo_operator.py b/src/codegen/git/repo_operator/repo_operator.py index 07f59b742..944b4ec8d 100644 --- a/src/codegen/git/repo_operator/repo_operator.py +++ b/src/codegen/git/repo_operator/repo_operator.py @@ -166,8 +166,14 @@ def git_cli(self) -> GitCLI: return git_cli @property - def head_commit(self) -> GitCommit: - return self.git_cli.head.commit + def head_commit(self) -> GitCommit | None: + try: + return self.git_cli.head.commit + except ValueError as e: + if "Reference at 'refs/heads/main' does not exist" in str(e): + logger.info("No commit exists in the repository yet") + return None + raise @property def git_diff(self) -> str: diff --git a/src/codegen/sdk/core/codebase.py b/src/codegen/sdk/core/codebase.py index b46659cf5..113196d32 100644 --- a/src/codegen/sdk/core/codebase.py +++ b/src/codegen/sdk/core/codebase.py @@ -898,6 +898,10 @@ def checkout( result = self._op.checkout_commit(commit_hash=commit) if result == CheckoutResult.SUCCESS: logger.info(f"Checked out {branch or commit}") + if self._op.head_commit is None: + logger.info("No commit exists in the repository yet") + return CheckoutResult.SUCCESS + self.sync_to_commit(self._op.head_commit) elif result == CheckoutResult.NOT_FOUND: logger.info(f"Could not find branch {branch or commit}") @@ -1435,6 +1439,7 @@ def from_string( with tempfile.TemporaryDirectory(prefix="codegen_") as tmp_dir: logger.info(f"Using directory: {tmp_dir}") + codebase = CodebaseFactory.get_codebase_from_files(repo_path=tmp_dir, files=files, programming_language=prog_lang) logger.info("Codebase initialization complete") return codebase From 29406863fc8cf3e51f7cea7ff8c620fe940aa4f8 Mon Sep 17 00:00:00 2001 From: Tawsif Kamal Date: Tue, 18 Mar 2025 15:08:38 -0700 Subject: [PATCH 2/3] Update src/codegen/git/repo_operator/repo_operator.py Co-authored-by: Christine Wang --- src/codegen/git/repo_operator/repo_operator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/codegen/git/repo_operator/repo_operator.py b/src/codegen/git/repo_operator/repo_operator.py index 944b4ec8d..04726574b 100644 --- a/src/codegen/git/repo_operator/repo_operator.py +++ b/src/codegen/git/repo_operator/repo_operator.py @@ -171,7 +171,7 @@ def head_commit(self) -> GitCommit | None: return self.git_cli.head.commit except ValueError as e: if "Reference at 'refs/heads/main' does not exist" in str(e): - logger.info("No commit exists in the repository yet") + logger.info(f"Ref: {op.git_cli.head.ref.name} has no commits") return None raise From 80848668204aa9d72eca056474222d861d4d7868 Mon Sep 17 00:00:00 2001 From: tawsifkamal Date: Tue, 18 Mar 2025 15:24:44 -0700 Subject: [PATCH 3/3] done --- src/codegen/git/repo_operator/repo_operator.py | 4 ++-- src/codegen/sdk/core/codebase.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/codegen/git/repo_operator/repo_operator.py b/src/codegen/git/repo_operator/repo_operator.py index 04726574b..edee45a18 100644 --- a/src/codegen/git/repo_operator/repo_operator.py +++ b/src/codegen/git/repo_operator/repo_operator.py @@ -170,8 +170,8 @@ def head_commit(self) -> GitCommit | None: try: return self.git_cli.head.commit except ValueError as e: - if "Reference at 'refs/heads/main' does not exist" in str(e): - logger.info(f"Ref: {op.git_cli.head.ref.name} has no commits") + if (f"Reference at {self.git_cli.head.ref.path!r} does not exist") in str(e): + logger.info(f"Ref: {self.git_cli.head.ref.name} has no commits") return None raise diff --git a/src/codegen/sdk/core/codebase.py b/src/codegen/sdk/core/codebase.py index 113196d32..6b4c103aa 100644 --- a/src/codegen/sdk/core/codebase.py +++ b/src/codegen/sdk/core/codebase.py @@ -899,7 +899,7 @@ def checkout( if result == CheckoutResult.SUCCESS: logger.info(f"Checked out {branch or commit}") if self._op.head_commit is None: - logger.info("No commit exists in the repository yet") + logger.info(f"Ref: {self._op.git_cli.head.ref.name} has no commits") return CheckoutResult.SUCCESS self.sync_to_commit(self._op.head_commit)