Skip to content

No test holds the P1 call that unpushed spans tags #475

Description

@blooop

Closing #471 took a deliberate trade under principle 1: Git::unpushed_commits asks log --oneline --all --not --remotes, and --all spans refs/tags, so a tag the remote carries that no remote branch reaches reads as unpushed forever. The direction is towards keeping, which is why it was taken.

Question

Nothing in the tree creates a tag, so no test fails if someone narrows that question back. A later tidy-the-report change to --branches or --no-tags would silently reverse a principle-1 decision and every check would stay green. This repo pins argv order elsewhere for exactly this reason.

Two facts the #474 review measured that sharpen it:

  • Through devlaunch's real clone topology the false positive is stronger than the doc says. The bare cache keeps refs/tags/v1 after upstream deletes both the branch and the tag (Confirm the bare object stores are bounded #453's tag monotonicity), the workspace clone inherits the tag while refs/remotes/* gets pruned, so every clone of that repo made afterwards reports 1 unpushed commit permanently.
  • The same widening reaches refs/notes/commits (a permanent false positive in any git-notes clone) and refs/bisect/*. rust/devlaunch-core/src/clients/git.rs:501 names neither.

Work

A test that fails if the question narrows: a clone whose only unpushed-looking thing is a tag, asserting the guard reports it rather than NothingToLose. Red first, by narrowing the argv and watching it fail. Name notes and bisect in the doc comment while you are there.

Out of scope: changing the trade. Principle 1 decided it and #471 recorded the reasoning; this ticket only stops it being reversed by accident.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions