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
@@ -0,0 +1,17 @@
## Why
The current repository creation flow creates mirrored bare repositories for clone-based repos. That breaks the workspace model because the UI and file editing features expect a normal working clone with an initial branch, remote tracking, and pull/fetch behavior that works from a checked-out branch.
## What Changes
- Create clone-based repositories as normal working clones instead of mirrors
- Initialize blank repositories as working clones with an initial branch when needed
- Ensure newly created repos have a usable current branch for workspace browsing and commits
- Update pull semantics to use the current tracked branch when available
- Keep fetch behavior available for remote-synced repositories
## Impact
- Backend: repository creation and git control helpers
- Backend tests: clone, pull, and empty-repo branch behavior
- Frontend: no intentional UX change beyond sync behavior becoming reliable