Replies: 2 comments
|
This makes sense—the configured URL is acting as a repository identity check here, while updates continue to fetch and pull from the checkout’s existing A PR is welcome. Please normalize common network forms such as Please add positive SSH↔HTTPS coverage plus negative cases for different hosts, aliases, ports, paths, local/Windows paths, and non- This comment was generated by an AI coding assistant. |
|
This shipped in #11034 (
AI-assisted — Tool: Claude Code; model: anthropic/claude-fable-5; version: unavailable. |
Uh oh!
There was an error while loading. Please reload this page.
What happens
[bootstrap.repos]refuses to update an existing checkout when itsoriginuses a different transport than the configuredurl, even when both point at the same host and path:With an existing checkout whose origin is
git@github.com:basecamp/docker-dev.git:Reproduced on 2026.7.5 macos-arm64;
main'snormalize_remote_urlhas the same behavior (it normalizes only trailing slashes and a.gitsuffix).Why this looks like a false positive
git fetch/pull … origininsrc/system/repos.rs), never via the configuredurl— so for same-host-same-path origins, the transport of the existing remote doesn't change what would be fetched..git-suffix normalization already treats the configured URL as identifying a repo rather than an exact string; ssh↔https is the same idea one step further.ghwithgit_protocol = ssh— hard-fail the repos phase until each user rewrites their remote, even though the checkout is the declared repo.Proposal
Normalize both sides to
host/pathfor the comparison — scp-likegit@HOST:PATHandscheme://[user@]HOST/PATHforms — while keeping exact matching forfile://and local paths (asshould_strip_git_suffixalready distinguishes). Genuinely different remotes (different host, ssh alias, port, or path) would still conflict, which seems right.Happy to PR this if the direction sounds acceptable.
All reactions