diff --git a/apps/api/src/utils/git_files.py b/apps/api/src/utils/git_files.py index ebe0cd0..d98cfa3 100644 --- a/apps/api/src/utils/git_files.py +++ b/apps/api/src/utils/git_files.py @@ -72,7 +72,15 @@ def list_tree(repo_path: str, branch: str = "main", path: str = "") -> list[File except RuntimeError: # Try with HEAD if branch doesn't exist tree_path = f"HEAD:{path}" if path else "HEAD" - output = _run_git_command(repo_path, "ls-tree", "-l", tree_path) + try: + output = _run_git_command(repo_path, "ls-tree", "-l", tree_path) + except RuntimeError as e: + # Check if this is an empty repository (no commits yet) + error_msg = str(e).lower() + if "not a valid object name" in error_msg or "does not exist" in error_msg: + # Empty repository - return empty list + return [] + raise entries = [] for line in output.strip().split("\n"): diff --git a/apps/web/src/pages/repo-workspace.tsx b/apps/web/src/pages/repo-workspace.tsx index dcb58b7..b013f52 100644 --- a/apps/web/src/pages/repo-workspace.tsx +++ b/apps/web/src/pages/repo-workspace.tsx @@ -364,6 +364,9 @@ const FileBrowser = ({ .. )} + {entries.length === 0 && ( +

No files in this repository yet.

+ )} {entries.map((entry) => { const fileStatus = entry.type === "file" ? getFileStatus(entry.path) : null; return (