fix: use working clones for git repos

- Create normal working clones for remote repositories
- Initialize blank repositories with a main branch
- Align pull and branch helpers with unborn HEAD handling
- Gate fetch/pull on repositories with a remote

Quality gates: vitest repositories-settings-tab (passed); api pytest blocked by missing fastapi in environment
This commit is contained in:
2026-05-22 19:54:42 +02:00
parent 2525c58471
commit 4547105f3b
10 changed files with 215 additions and 38 deletions
+10 -3
View File
@@ -45,7 +45,10 @@ def get_status(repo_path: str) -> GitStatus:
try:
branch = _run_git_command(repo_path, "rev-parse", "--abbrev-ref", "HEAD").strip()
except RuntimeError:
branch = "HEAD"
try:
branch = _run_git_command(repo_path, "symbolic-ref", "--short", "HEAD").strip()
except RuntimeError:
branch = "HEAD"
status = GitStatus(branch=branch)
@@ -215,7 +218,8 @@ def pull(repo_path: str, branch: str | None = None) -> None:
"""
args = ["pull"]
if branch:
args.extend(["origin", branch])
args.append("origin")
args.append(branch)
_run_git_command(repo_path, *args)
@@ -279,4 +283,7 @@ def get_current_branch(repo_path: str) -> str:
Returns:
Current branch name
"""
return _run_git_command(repo_path, "rev-parse", "--abbrev-ref", "HEAD").strip()
try:
return _run_git_command(repo_path, "rev-parse", "--abbrev-ref", "HEAD").strip()
except RuntimeError:
return _run_git_command(repo_path, "symbolic-ref", "--short", "HEAD").strip()