Repository navigation
Closed
Milestone
Description
Goal: where bump --to refuses a commit as unreachable from the member's remote, the refusal's reason is true of the mount in front of the person.
Filed by lane openRepoShape-5 on Brett Heap's word of 2026-10-16T12:17:02Z ("#459's family lines (~38)"), from lane 4's R613 lines on #459 (comment 6203972266, R613 p07, p03 and p10). Lane 4 judged each OPEN on 95780dd (cluster T8); re-read on d4a7fab.
Lines (line numbers at d4a7fab)
- R613 p07,
bumpfetches with plaingit fetch -q origin, so a mount whose fetch refspec is narrowed keeps no remote-tracking ref for the member's other branches.scripts/family.py:5758(cmd_bump);scripts/bump-leg.py:960-961fetches+refs/heads/*:refs/remotes/origin/*. A commit fetched by hand from another branch is then refusedmember-to-local-only, with a false detail.family.pynever makes such a mount (no--depth,--single-branch,shallow), so only one narrowed by hand reaches it. Not re-run; the code difference is read. Direction: fetch with the explicit refspec, asbump-leg.pydoes, keeping-q originand thefetched = Falsepath. - R613 p03, a commit the member's remote holds only through a tag, which the mount also holds, is refused
member-to-local-onlywith a reason that is untrue there._checked_on_a_remote_branch(scripts/family.py:5329-5362) says "reachable from no branch of " and "A pin the rest of the world cannot fetch is a family the rest of the world cannot bootstrap" (:5360-5362), where a fresh clone holds the commit and a fetch by sha works.bump-leg.py's twin,bump-leg-commit-local-only("somebody committed inside the leg's mount",:980), is untrue the same way._checked_to_names_a_commit's docstring records that both tools ask about branches only and "Left as it is" (D2, option 1); this line is the wording, not the rule. Direction: keep the refusal and word the reason as what it is (no branch reaches the commit; where a tag of the remote holds it, say so, and that the way out is to push it to a branch), without the claim that nobody can fetch it. Thebump-leg.pyhalf is lane 5's Tracking: update-shape.py and bump-leg.py, keeping a project's shape copies and leg pins current #458 file: change both together or note the other. - R613 p10, a mount with no remote named
originis told the stale-refs sentence and to "fix the network or the credential".cmd_bump's fetch oforiginfails (scripts/family.py:5758,fetched = False),_on_a_remote_branchreads onlyrefs/remotes/origin/(:5305-5326), and_checked_on_a_remote_branchends with the sentence naming the network (:5351-5354). Probed: inmembers/IRRS,git remote rename origin upstream, thenbump --dry-run --to <HEAD~1>givesnote: could not fetch members/IRRS from its originandREFUSED member-to-local-only ... The fetch of members/IRRS FAILED ... fix the network or the credential. Direction: when the fetch fails, ask whether the mount has anoriginat all (git remote get-url origin), and say it has none; the same sentence inbump-leg.pyis Tracking: update-shape.py and bump-leg.py, keeping a project's shape copies and leg pins current #458's.
Left out of this issue, and why:
- R613 p08 (a fork as
originpasses a commit only the fork has), p05 (a branch deleted after the last fetch still counts; pruning needs a ruling) and E8 (a holder pinned before family.py:bump --torefuses a commit only the member's mount holds, reachable from no branch of the member's remote, asbump-leg.pyrefuses its twin, so a holder is never pinned to a commit nobody else can fetch (#613) #625 to a commit only its mount held stays pinned; no validator asks) each need a decision of Brett's. They stay on Tracking: setup, scaffold, family and the shared helpers, creating projects and families #459. - The tag-whose-commit-is-on-no-branch line (
bump --torefuses it,add --atpins it) and R613 D1/p04 (the release commit'sbump --toand the validator's own repair are refused) were accepted as ruled (D2, option 1, 2026-10-15T16:49:38Z) and recorded in_checked_to_names_a_commit's docstring (scripts/family.py:5365). D1's v1.1.0 release-notes sentence is owed to whoever writesdocs/release-notes/v1.1.0.md(it is on README, AGENTS.md, docs/cli.md and the handbook:pipx install openreposhapeis the second way in and the first on native Windows, git-filter-repo is installed in install.sh's order and never with a barepip install, and a first draft of the v1.1.0 release notes (#563) #630's branch, not on main).
Overlaps: none with an open PR (#639 edits cmd_remove and remove's checks only). scripts/family.py and scripts/bump-leg.py are not pinned copies.
Mark the three lines → this issue on #459, and tick them there when this closes.
🤖 Generated with Claude Code
Metadata
Metadata
Assignees
Labels
No labels
Activity
brettheap commentedon Oct 16, 2026
CLAIMED — lane openRepoShape-4, session 11c6c0ef-495a-4a05-94cf-811b7b0a1012@Eagle, 2026-10-16T13:22:54Z, for #686
Logged in
lanes/log/openRepoShape-4.mdat04add92020614d84d0d450894703c4ecea95240c.The three reads (lane-collision-protocol Rule 1):
Merge main bf1f099 into fix/686-bump-reachability
render-cli-reference.py and tests/: the CLI reference's children writ…
family.py: `bump`'s prune keeps what the mount's own refspecs maintai…
family.py: `bump`'s fetch skips the mount's negative refspecs, so a b…
tests: #795's unreadable-config row reaches `get-url` past #816's hol…
docs/release-notes/v1.1.0.md: entries for #748, #731, #810, #809, #816,
docs/release-notes/v1.1.0.md: #746's entry, v1.0.0's staged-paths lim…
Merge origin/main (6f64eea) into l3-563-docs
docs/release-notes/v1.1.0.md: #795's entry, the list complete to main 6…
Merge main 6f64eea after #795 (#686) landed
family.py: `bump`'s fetch also leaves out every refspec of the mount'…
family.py: `bump`'s fetch no longer moves the mount's own branches, w…
family.py: `bump`'s fetch leaves out every refspec of the mount's who…
shape_materialize.py: the fetch for a branch's answer leaves out ever…