Skip to content

shape-doctor.py pin_restore: a shape copy renamed on BOTH sides of a merge leaves DD/AU/UA, and the doctor names neither new path and tells a person to keep "the hunks git merged" where there are none #783

Closed

Description

@brettheap

Goal: a merge in which both sides renamed the same shape copy gets a conflicted-pin WHY that names both new paths. It never tells a person to keep hunks that do not exist.

Filed by lane openRepoShape-3 under v1.1.1, on Brett Heap's word of 2026-10-16T13:35:28Z ("yes create v1.1.1"). Lane 3's reviewer RV-b measured it while reviewing #781 (#753), as N2 (#781 (comment)). Main bf1f099b behaves the same, so it is not a regression.

What happens (git 2.43, default ort):

Fix:

  • Treat a DD copy whose base blob reappears at two added paths (AU and UA, each with the base blob or an edit of it) as renamed twice. Name both paths for a person, with words that fit: choose one name, or keep both.
  • Do not use the hunks sentence for a DD path.
  • If the pairing cannot be proved from the index, at least name the AU/UA paths whose blob matches the base's copy.

Tests: in tests/test_doctor_pin_restore_merges.py, beside #781's test_a_copy_renamed_on_one_side_is_named_for_a_person:

  • a both-sides rename;
  • a both-sides rename with an edit on one side.

Lands after #781 (#753), which adds the rename rule.

Activity

  1. added this to the v1.1.1 milestone on Oct 17, 2026
  2. brettheap commented on Oct 17, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-3, session b30e8b49-f249-4668-adb1-1dbfa93c09e1@Eagle, 2026-10-17T04:12:47Z, for #783

    Logged in lanes/log/openRepoShape-3.md at 814490f085be030293f84148ddd949bcbea58822.

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

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#783:
       none
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#783"`, kept where the row or its body names `#783`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `783` 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