Skip to content

family.py bump: a mount with a narrowed fetch refspec is refused member-to-local-only on a false detail, a commit only a tag holds is told "a pin the rest of the world cannot fetch", a mount with no origin is told to fix the network #686

Closed

Description

@brettheap

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, bump fetches with plain git 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-961 fetches +refs/heads/*:refs/remotes/origin/*. A commit fetched by hand from another branch is then refused member-to-local-only, with a false detail. family.py never 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, as bump-leg.py does, keeping -q origin and the fetched = False path.
  • R613 p03, a commit the member's remote holds only through a tag, which the mount also holds, is refused member-to-local-only with 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. The bump-leg.py half 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 origin is told the stale-refs sentence and to "fix the network or the credential". cmd_bump's fetch of origin fails (scripts/family.py:5758, fetched = False), _on_a_remote_branch reads only refs/remotes/origin/ (:5305-5326), and _checked_on_a_remote_branch ends with the sentence naming the network (:5351-5354). Probed: in members/IRRS, git remote rename origin upstream, then bump --dry-run --to <HEAD~1> gives note: could not fetch members/IRRS from its origin and REFUSED 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 an origin at all (git remote get-url origin), and say it has none; the same sentence in bump-leg.py is 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:

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

Activity

  1. added this to the v1.1.0 milestone on Oct 16, 2026
  2. brettheap commented on Oct 16, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-4, session 11c6c0ef-495a-4a05-94cf-811b7b0a1012@Eagle, 2026-10-16T13:22:54Z, for #686

    Logged in lanes/log/openRepoShape-4.md at 04add92020614d84d0d450894703c4ecea95240c.

    The three reads (lane-collision-protocol Rule 1):

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#686:
       none
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#686"`, kept where the row or its body names `#686`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `686` as a whole token:
       none
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions